<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>