【发布时间】:2012-03-09 04:43:56
【问题描述】:
这是我更新和修改的脚本,它完全可以工作,除了我想通用它...观察****我怎样才能做到这样我就不必每次都做function(e){BOX.Draggable.elemen = e.target || e.srcElement; 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';
}
}
【问题讨论】:
-
这篇文章有一个更简单的JS版本stackoverflow.com/questions/24050738/…
标签: javascript draggable move mousemove