阅读 187

鼠标控制盒子在页面中移动

首先先了解鼠标的三个事件:

  1. mousedown:鼠标按下时触发事件。
  2. mousemove:鼠标移动时出发的事件。
  3. mouseup:鼠标弹起时触发的事件。

 

原理:

  1.  通过鼠标按下触发事件获取鼠标在盒子中的位置,既鼠标坐标减去盒子的坐标x,y;鼠标的位置为e.pageX,e.pageY;盒子位置则是offsetLeft和offsetTop;那么x=e.page-offsetLeft,y=e.pageY-offsetTop.
  2.  然后在鼠标按下事件中写鼠标移动触发事件,通过鼠标的不断移动,我们就可以动态的获取盒子位置x和y,既盒子跟随鼠标移动。
  3.  最后在我们松开盒子的时候,把鼠标按下后动态获取盒子位置的函数删除掉,就可以了。
 1 //1.当我们鼠标按下,就获得鼠标在盒子内的坐标
 2         box.addEventListener(‘mousedown‘,function(e){
 3             var x = e.pageX - login.offsetLeft;
 4             var y = e.pageY - login.offsetTop;
 5             //2.鼠标移动的时候,把鼠标在页面中的坐标减去鼠标在盒子内的坐标就是模态版的left和top值
 6             document.addEventListener(‘mousemove‘,move);
 7             function move(e){
 8                 login.style.left = e.pageX - x + ‘px‘;
 9                 login.style.top = e.pageY-y + ‘px‘;
10             }
11             //3.鼠标弹起就让鼠标移动任务移除
12             document.addEventListener(‘mouseup‘,function(){
13                 document.removeEventListener(‘mousemove‘,move)
14             })
15         })

 

原文:https://www.cnblogs.com/joker-sqr/p/15017346.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐