gpt4 book ai didi

javascript - 可 move/可拖动

转载 作者:IT王子 更新时间:2023-10-29 02:58:42 26 4
gpt4 key购买 nike

这是我更新和修改的脚本,它完全可以工作,除了我想将它普遍化...观察 **** 我怎样才能做到这一点,这样我就不必执行 function( e){BOX.Draggable.elemen = e.target || e.src元素; elementDraggable(e); 每次我需要为不同的元素使用可拖动功能?

window.onload = addListeners;

var BOX = function(){
return{
Draggable: function(){}
};
}();

function addListeners(){
document.getElementById('div').addEventListener('contextmenu', menumove, false);
**document.getElementById('div').addEventListener('mousedown', function(e){BOX.Draggable.elemen = e.target || e.srcElement; elementDraggable(e);}, false);**
}

function elementDraggable(e){
var e = e || window.event;
var div = BOX.Draggable.elemen;
BOX.Draggable.innerX = e.clientX + window.pageXOffset - div.offsetLeft;
BOX.Draggable.innerY = e.clientY + window.pageYOffset - div.offsetTop;

window.addEventListener('mousemove', elementMove, false);
window.addEventListener('mouseup', function(){
window.removeEventListener('mousemove', elementMove, false);
}, true);

function elementMove(e){
div.style.position = 'absolute';
div.style.left = e.clientX + window.pageXOffset - BOX.Draggable.innerX + 'px';
div.style.top = e.clientY + window.pageYOffset - BOX.Draggable.innerY + 'px';
}
}

最佳答案

jQuery 是您的选择吗?由于代码已经存在,它使您正在做的事情变得非常简单。

http://jqueryui.com/demos/draggable/

Demo

JavaScript 代码

window.onload = addListeners;

function addListeners(){
document.getElementById('dxy').addEventListener('mousedown', mouseDown, false);
window.addEventListener('mouseup', mouseUp, false);

}

function mouseUp()
{
window.removeEventListener('mousemove', divMove, true);
}

function mouseDown(e){
window.addEventListener('mousemove', divMove, true);
}

function divMove(e){
var div = document.getElementById('dxy');
div.style.position = 'absolute';
div.style.top = e.clientY + 'px';
div.style.left = e.clientX + 'px';
}​

关于javascript - 可 move/可拖动 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9334084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com