【发布时间】:2016-04-16 17:17:35
【问题描述】:
我正在为模态框使用 AngularJS 指令,以使它们可拖动。
This 是指令。
在演示中,您可以清楚地看到,如果您拖动它(尤其是左右拖动),它会比鼠标慢。我理解为什么会发生这种情况(JavaScript 计算相对于它的起始位置的位置,所以在我的 1920x1080 屏幕中,它在 x 轴上从 -1200px 到 1920px)。而且我知道有必要使用偏移量而不是位置,但经过多次尝试我未能做到这一点。
这是相关的 JavaScript 代码:
element.on('mousedown', function (event) {
// Prevent default dragging of selected content
event.preventDefault();
startX = event.screenX - x;
startY = event.screenY - y;
$document.on('mousemove', function mousemove(event) {
y = event.screenY - startY;
x = event.screenX - startX;
element.css({
top: y + 'px',
left: x + 'px'
});
});
});
我怎样才能让它依靠偏移量和鼠标一起移动而不慢?
【问题讨论】:
-
你做错了什么,你正在移动“一切”。如果您注释掉“mouseup”事件,您可以使用 devtools 看到您正在移动模态窗口的容器。我猜你只想移动内部元素。
标签: javascript jquery angularjs twitter-bootstrap draggable