使用javascript拖放时如何避免抓取图像?

时间:2011-08-16 05:41:54

标签: javascript animation drag-and-drop

这是我的问题,它很长,但实际上非常简单,如果你愿意,请至少浏览它。

我选择一个名为'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。

1 个答案:

答案 0 :(得分:0)

尝试将属性ondragstart="return false;"添加到img标记,这应禁用浏览器内置的拖放功能。您通常还需要为a代码执行此操作