JavaScriptWeb前端之路

JS实现拖拽

2017-07-03  本文已影响27人  sky丶星如雨
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #box {
            width: 100px;
            height: 100px;
            background-color: #ccc;
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
<div id="box"></div>
<script>
    var box = document.getElementById("box");
    box.onmousedown  = function (event) {
        var e = event || window.event;
        // 获取鼠标位置
        var x1 = e.clientX;
        var y1 = e.clientY;
        // 获取元素当前位置
        var boxLeft = box.offsetLeft;
        var boxTop = box.offsetTop;
        document.onmousemove = function (event) {
            var e = event || window.event;
            // 获取鼠标在当前事件下的位置
            var x2 = e.clientX;
            var y2 = e.clientY;
          // 计算鼠标移动差值
            var LessX = x2 - x1;
            var LessY = y2 - y1;
          // 设置box位置
            box.style.left = boxLeft + LessX + "px";
            box.style.top = boxTop + LessY + "px";
        }

    }
    box.onmouseup = function () {
        // 清除移动事件
        document.onmousemove = null;
    }
</script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读