使没有jQuery的可拖动元素

时间:2018-07-12 10:20:42

标签: javascript

我想要一种简单的方法来拖动网页上的元素,并允许人们在重新访问时在缓存中对其进行自定义。 我不在乎是否需要刷新,但是由于某种原因我的服务器不会加载jquery,因此不需要jquery。

1 个答案:

答案 0 :(得分:0)

var mousePosition;
var offset = [0,0];
var div;
var isDown = false;

div = document.createElement("div");
div.style.position = "absolute";
div.style.left = "0px";
div.style.top = "0px";
div.style.width = "100px";
div.style.height = "100px";
div.style.background = "red";
div.style.color = "blue";

document.body.appendChild(div);

div.addEventListener('mousedown', function(e) {
    isDown = true;
    offset = [
        div.offsetLeft - e.clientX,
        div.offsetTop - e.clientY
    ];
}, true);

document.addEventListener('mouseup', function() {
    isDown = false;
}, true);

document.addEventListener('mousemove', function(event) {
    event.preventDefault();
    if (isDown) {
        mousePosition = {

            x : event.clientX,
            y : event.clientY

        };
        div.style.left = (mousePosition.x + offset[0]) + 'px';
        div.style.top  = (mousePosition.y + offset[1]) + 'px';
    }
}, true);

感谢Executable

获取答案