实现Div拖拽

时间:2024-03-02 17:53:41

直观的理解div拖拽:当鼠标对着可拖拽部分按住后并拖动,div会跟着鼠标一起运动,并且其运动空间限制在浏览器内部,当放开鼠标时,则div停止运动。

实现div拖拽需要三个重要的事件:

(1)onmousedown-鼠标按下事件

(2)onmousemove-鼠标移动事件

(3)onmouseup-鼠标抬起事件

当鼠标移出浏览器后再回到浏览器内部时,会丢失对div的控制,需要再次按下鼠标移动div,为了改善这一小问题,代码中使用了setCapture和releaseCapture。

其中,setCapture方法是用于监视鼠标操作事件,即使鼠标移出浏览器照样能够捕捉到鼠标位置,当鼠标移回浏览器内部时,此时div依然跟随着鼠标移动;当然,releaseCapture方法就是释放对鼠标操作事件的监视。

需要注意的重点是div的坐标问题,当鼠标按住div后移动,div要跟着鼠标时时改变位置坐标。

效果展示