SOURCE

console 命令行工具 X clear

                    
>
console
// 封装拖拽函数
function move(){
    // 获取元素
    let drag=document.getElementById("drag");
    // 触发三个函数 mousedown mousemove mouseup
    // mousedown()
    drag.addEventListener('mousedown',mousedown,false);
    // mousemove()
    drag.addEventListener('mousemove',mousemove,false);
    // mouseup()
    drag.addEventListener('mouseup',mouseup,false);

    // 标识
    let tag = false;
    // mousedown
    function mousedown(e){
        tag=true;
        // 记录鼠标距物体左侧的位置
         diffX = e.clientX-this.offsetLeft;
        // 记录鼠标距离物体顶部的位置
         diffY = e.clientY-this.offsetTop;
    }

    // mousemove
    function mousemove(e){
       if(tag){
        // 移动后物体的位置
        let left=e.clientX-diffX;
        let top = e.clientY-diffY;
       
        // 判断物体的边界
        if(left<0){
            left=0;
        }else if(left>window.innerWidth-this.offsetWidth){
            left = window.innerWidth-this.offsetWidth;
            
        }else{
             console.log(left);
            drag.style.left=left+'px';
        }
        if(top<0){
            top=0;
        }else{
            drag.style.top=top+'px';
        }
       }
    }

    // mouseup
    function mouseup(){
        // 取消移动
        tag=false;
    }
}
move(drag);
<div class="box" id="drag">拖拽我</div>
.box{
    width:100px;
    height:100px;
    background-color:pink;
    cursor: move;
    text-align: center;
    line-height: 100px;
    position: absolute;
}