2011-08-16 33 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

不是所有主流瀏覽器的標準行爲 –