这是我的问题,它很长,但实际上非常简单,如果你愿意,请至少浏览它。
我选择一个名为'app'的div并将其拖到页面上。工作良好。除了偶尔当我抓住div并拖动而不是拖动div时,只有div的图像拖动(在firefox和webkit浏览器中,而不是ie)并且鼠标光标变成一个带有直线的圆圈。这极大地损害了网页的交互性,我不认为它是一个编码问题,而不是浏览器问题。
我将显示用于拖动下方的代码,但首先你应该知道为了拖动我使用三组变量,X1& Y1是pageX和pageY(clientX或clientY,具体取决于浏览器)和/或每次鼠标移动时记录。
X2&当在div上按下鼠标时设置Y2,并且鼠标位置与当前顶部和顶部之间的差异是div的左侧位置,使用它们,以便在拖动div时鼠标位置不等于左上角。
最后dX和dY(delta X和delta Y的缩写)是相等的X1-X2和Y1-Y2,当鼠标移动并且等于X的变化和Y的变化时,它们也被设置。
很抱歉解释,但我认为它可能有助于清除以下代码的任何混淆,这是拖动代码。
app.onmousedown = function() {
X2 = app.offsetWidth - ((app.offsetWidth + app.offsetLeft) - X1);
Y2 = app.offsetHeight - ((app.offsetHeight + app.offsetTop) - Y1);
main.onmousemove = function() {
dX = X1 - X2;
dY = Y1 - Y2;
app.style.top = dY + 'px';
app.style.left = dX + 'px';
}
}
请注意,主div只是一个容纳页面所有元素的容器,为方便起见,因为它等于网页的大小。
这就是我的问题,正如我之前所说的那样,有时只会发生它有效,但没有任何错误。然而,它经常发生在一个问题上。我知道有可能让这个工作,因为我已经看到了没有遇到这个问题的拖放演示。因此,如果有人知道或有任何想法,我会非常感激,如果不感谢,无论如何都要读这个,我知道很久很抱歉。
ps:请不要建议javascript框架,我不是他们的粉丝。这是我的偏好,我不讨厌他们,我只是喜欢javascript。
答案 0 :(得分:0)
尝试将属性ondragstart="return false;"
添加到img
标记,这应禁用浏览器内置的拖放功能。您通常还需要为a
代码执行此操作