217

问答题 217 /501

js拖拽功能的实现

参考答案

参考回答:

首先是三个事件,分别是mousedown,mousemove,mouseup
当鼠标点击按下的时候,需要一个tag标识此时已经按下,可以执行mousemove里面的具体方法。



clientX,clientY标识的是鼠标的坐标,分别标识横坐标和纵坐标,并且我们用offsetX和offsetY来表示元素的元素的初始坐标,移动的举例应该是:


鼠标移动时候的坐标-鼠标按下去时候的坐标。


也就是说定位信息为:


鼠标移动时候的坐标-鼠标按下去时候的坐标+元素初始情况下的offetLeft.



还有一点也是原理性的东西,也就是拖拽的同时是绝对定位,我们改变的是绝对定位条件下的left
以及top等等值。


补充:也可以通过html5的拖放(Drag 和 drop)来实现