这篇文章主要为大家详细介绍了JavaScript实现鼠标拖拽效果(代码可直接复制实现)。我认为这个实验的难点是保持盒子和鼠标的相对位置不变,通过鼠标按下和移动来实现拖拽的效果。
我们需要用到三个函数:
onmousedown
、onmousemove
、onmouseup
,分别表示鼠标按下、鼠标移动、鼠标抬起
在鼠标按下的回调函数中,我们需要通过clientX
和clientY
获取鼠标的初始位置,通过offsetLeft
和offsetTop
获取盒子的初始位置,然后计算鼠标初始位置和盒子初始位置的差值;
在鼠标移动的回调函数中,我们需要根据鼠标的位置和之前计算得到的差值来获取盒子现在的位置,然后改变其left和top值;
在鼠标抬起的回调函数中,我们需要清除鼠标移动和鼠标抬起,通过将onmousemove
和onmouseup
值设置为null即可;
需要注意的是鼠标移动函数和抬起函数均要写在鼠标按下函数中,因为我们是要在鼠标按下这个动作之后来设计之后的行为,而且很重要的一点是:鼠标按下函数是div的,鼠标移动和鼠标抬起是document的,因为我们的意思并不是鼠标在div中移动,而是在整个页面移动。
全部代码如下:
<template>// 这里一定要设置绝对定位,不然没法移动div<div id="box-card" style="position: absolute; border: 1px solid red; width: 100px; height: 100px;"></div></template>
以上就是本文的全部内容,希望对大家的学习有所帮助;谢谢支持!!!