码迷,mamicode.com
首页 > Web开发 > 详细

用JS实现版面拖拽效果

时间:2016-10-28 03:03:01      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:mouse   span   事件   之间   标题   null   bsp   标题栏   cli   

类似于这样的一个版面,点击标题栏,实现拖拽效果。

技术分享

添加onmousedown事件

通过获取鼠标的坐标(clientX,clientY)来改变面板的位置

注意:面板使用绝对定位方式,是以左上角为参考点,所以我们还需要获取鼠标在面板的位置,也就是以鼠标所在位置为参考点。

// 光标按下时光标和面板之间的距离
      disX=event.clientX-oDrag.offsetLeft,
      disY=event.clientY-oDrag.offsetTop;

添加onmousemove事件

在获取了鼠标相对于面板的位置后,设置面板的left,和top为鼠标坐标与对应这个值之差即可。

// 计算位置并设置
    l=event.clientX-disX;
  t=event.clientY-disY;
  oDrag.style.left=l+"px";
  oDrag.style.top=t+"px";

 

思考?能不能直接把letf和top的值设置为面板的offsetLeft和offsetTop属性,在数学表达式中值是相等的。

  不能,整个过程需要分为这两个步骤!!!

添加 onmouseup事件

// 释放鼠标
  document.onmouseup=function(){
      document.onmousemove=null;
      document.onmouseup=null;
  }

 

用JS实现版面拖拽效果

标签:mouse   span   事件   之间   标题   null   bsp   标题栏   cli   

原文地址:http://www.cnblogs.com/hkie/p/6006130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!