div跟随鼠标移动
<style>
body {
position: relative;
}
.box {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
<script>
// 获取div
var box = document.querySelector(".box");
// console.log(box);
// 设置一个变量判断鼠标按下和松开处理
var judge = false;
// 定义要删除的具体距离变量
var delX = 0,
delY = 0;
// 鼠标按下进行处理
box.onmousedown = function (e) {
// 这一步是处理div启动时移动不是跟随鼠标的相对位置
// 鼠标的文档位置减去在div中的位置
delX = e.clientX - this.offsetLeft;
// console.log(delX);
delY = e.clientY - this.offsetTop;
// console.log(delY);
judge = true;
}
box.onmousemove = function () {
if (judge) {
// 根据鼠标按下时处理完成的数据进行处理
// var x = event.clientX - delX,
// y = event.clientY - delY;
// 若想鼠标一直在div中间,则再进行处理数据(减去的就div的一半高和宽)
var x = event.clientX - box.offsetWidth / 2,
y = event.clientY - box.offsetHeight / 2;
box.style.top = y + "px";
box.style.left = x + "px";
}
}
box.onmouseup = function () {
judge = false;
}
</script>
浙公网安备 33010602011771号