1、先写一个能够滚动的内容
<head> <style> #container { width: 400px; height: 300px; overflow-y: auto; border: 1px solid #ddd; } .line { width: 360px; height: 40px; margin: 24px; background: #0082cc; } </style></head><body> <div id="container"> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> </div></body>
2、定义框选无效区
var selectContainer = document.getElementById('container'); //选框无效区
3、鼠标按下时,进入一个总的办法
selectContainer.onmousedown = function () { alert(2222222); //测试在无效区内,鼠标按下响应的事件}
4、欠缺鼠标按下的第一个执行操作:在容器里新增加一个方形div
selectContainer.onmousedown = function (e) { var selection = document.createElement('div'); selection.style.cssText="width: 100px; height: 100px; background: lightblue; opacity: 0.4"; document.getElementById('container').appendChild(selection);}
这个浅蓝色的方块就是咱们用鼠标拖动能够管制的框选框。然而框选框的起始地位(x,y),咱们要绝对于外框相对定位。所以,代码进一步写成:
#container { width: 400px; height: 300px; overflow-y: auto; position: relative; border: 1px solid #ddd;}
selection.style.cssText="width: 100px; height: 100px; background: lightblue; opacity: 0.4; position: absolute";
并且此时咱们要申明两个变量:程度偏移地位,垂直偏移地位
<script> var startX = 0; var startY = 0;
selectContainer.onmousedown = function (e) { startX = e.clientX; startY = e.clientY;
失去了鼠标点击的地位后,咱们试着把浅蓝色方块定位到这里。
selection.style.left = startX;selection.style.top = startY;
咱们当初失去了鼠标点击的定位点,接下来就要找到鼠标拖动的方块的横纵坐标范畴。
5、找方块的范畴
首先,咱们的方块范畴是通过鼠标挪动的多少来决定的,所以咱们要写一个鼠标按下后的挪动事件:
selectContainer.onmousemove = function (e) { alert("挪动了!");}
(未完待续...)