2011-08-16 31 views
1

这是我的问题,它很长,但其实很简单,如果您愿意,请至少浏览一下。如何避免在使用javascript拖拽drop时抓取图像?

我把一个名为“应用程序”的div并在页面上拖动。工作正常。除了偶尔当我抓住div和拖动而不是拖动div时,只有div的图像拖动(在Firefox中为& webkit浏览器,而不是),并且鼠标光标会变成一个带有直线的圆。这极大地损害了网页的交互性,我不认为它是一个浏览器问题的编码问题。

我将显示用于拖动的代码,但首先您应该知道,为了拖动我使用三组变量,X1 & Y1是pageX和pageY(clientX或clientY,取决于浏览器)和或者每次鼠标移动时记录。

X2 & Y2是在div上按下鼠标时设置的,并且是鼠标位置和当前顶部之间的区别& div的左边位置,它们用于当div被拖动时鼠标位置不等于左上角。

最后,dX和dY(三角洲X和三角洲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

尝试将属性ondragstart="return false;"添加到img标签,这应该禁用浏览器内置的拖放功能。你通常也需要这样做a标签

+0

不幸的是,这太浏览器的具体情况,但无论如何感谢 – Reis

+0

不是所有主流浏览器的标准行为 –