提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
思路是首先定义一个div,然后给div添加鼠标事件(按下左键、松开左键)
代码如下(里面有注释)
<body>
// 定义一个div名为drag
<div class="drag"></div>
</body>
<script>
var drag = document.querySelector(".drag");
// 鼠标按下事件,获取起点位置信息
drag.onmousedown = function(e1) {
var x1 = e1.clientX;
var y1 = e1.clientY;
var l1 = this.offsetLeft;
var t1 = this.offsetTop;
// 鼠标移动事件,计算差值,drag重新定位
window.onmousemove = function(e2) {
var x2 = e2.clientX;
var y2 = e2.clientY;
var l2 = l1 + (x2 - x1);
var t2 = t1 + (y2 - y1);
// 边界处理
l2 = l2 < 0 ? 0 : (l2 > window.innerWidth - drag.offsetWidth ? window.innerWidth - drag.offsetWidth : l2);
drag.style.left = l2 + 'px';
drag.style.top = t2 + 'px';
}
}
// 当鼠标抬起时,去掉mousemove事件
drag.onmouseup = function() {
window.onmousemove = null;
}
</script>
总结
一切写代码没有思路,都来源于代码量不足!