04:JS 拖拽功能的实现

JavaScript08

04:JS 拖拽功能的实现,第1张

首先是三个事件,分别是 mousedown , mousemove , mouseup

当鼠标点击按下的时候,需要一个 tag 标识此时已经按下,可以执行 mousemove 里面的具体方法。

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

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

也就是说定位信息为:

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

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

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

拖拽还是挺不错的一个页面效果,我个人认为,其生命力在于可以让用户自己做一些操作,所谓自定义。例如:

①浏览器标签顺序的拖拽切换

现在基本上所有的选项卡式的浏览器都有顺序拖拽切换的功能,如下图:

类似的效果我们可以在QQ精要新闻弹出框中看到,见下图:

②把内容放在自己喜欢的位置上

这个在桌面软件上见到的最多,比如视频播放器,Adobe系列软件(CS3+)等。