javascript实现鼠标拖拽效果

效果:

代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <style>
        .box1{
            
     
            width: 50px;
            height: 50px;
            background: red;
            position: absolute;
            z-index: 999;
        }
        .box2{
            
     
            width: 50px;
            height: 50px;
            background: yellow;
            position: absolute;
            left: 500px;
            top: 500px;
        }
    </style>

    <div class="box1"></div>
    <div class="box2"></div>
    <script>
        let box1 = document.querySelector(".box1")
        box1.addEventListener("mousedown",function(event){
            
     
            // div的相对于鼠标的偏移量
            let x = event.clientX - box1.offsetLeft;
            let y = event.clientY - box1.offsetTop;
			// 给document增加鼠标移动事件
           document.onmousemove = function(event){
            
     
            event = event || window.event
            let left = event.clientX - x;
            let top = event.clientY - y;
            // 元素的位置更新
            box1.style.left = left + px;
            box1.style.top = top + px
           }
           document.onmouseup = function(){
            
     
           // 移除document的鼠标移动事件以及鼠标弹开事件
            document.onmousemove = null;
            document.onmouseup = null;
           }
        })
    </script>
</body>
</html>
经验分享 程序员 微信小程序 职场和发展