2012-09-14 94 views
0

您知道如何單擊HTML元素(如圖像),然後將它們的「陰影版本」拖放到屏幕上?刪除對HTML元素的拖動

想看看堆棧溢出標誌?如果單擊並拖動它,則可以在屏幕上移動它的黑色版本。

所以我的問題是,有沒有什麼辦法可以去掉拖動HTML元素,主要是圖像?

+0

哪種瀏覽器?我無法拖動徽標。 –

+0

他可能使用Firefox。 – user1477388

+0

好奇你爲什麼要... – Gus

回答

5

這是瀏覽器的功能。這是將圖像保存到本地硬盤更容易的捷徑。有三種方式解決或解決此問題:

  • ,最好的辦法是更換了div具有圖像的相同寬度和高度的圖像,並設置背景圖片屬性到你想要的圖像。背景是不可拖拽的,所以這將做到你想要的。獎勵積分div的樣式設置爲display: inline-block;,使其更加逼真地模仿形象的行爲。

  • 你可以做一個最好的事情是使透明div同樣大小的圖像,並可以通過使用絕對定位和z-index的圖像位置。維護起來很麻煩,但在佈局中實現起來可能更容易。

  • 最後一個選項很糟糕。

    document.getElementById('my-image').ondragstart = function() { return false; };

...變革「我像」你的圖像元素的ID,你就大功告成了:你只需在下面的JavaScript添加到頁面的某個地方。但是這個選項是一個壞主意,因爲它依賴於JavaScript,而不是所有的瀏覽器都會啓用它。

作爲一個腳註,如果你想阻止你的圖像被保存 - 不要麻煩。通過或不通過任何數量的客戶端保護來獲取圖像非常簡單。

+0

我可以使用這些方法,謝謝你! :d – r1nzler

+0

這就是理念。 ;)我通常去選擇1時,我可以,順便說一句 - 它工作得很好了豐富的網絡應用。 –

1

假設我們應該可以用CSS user-select property.做到這一點但是,瀏覽器對它的支持是有限和不規則的。在我的測試,它可以防止選擇文本的外觀,但確實什麼都沒有,以防止圖像的拖動。現在,您需要使用一種解決方法,就像使用背景圖像一樣,如上所述。

FWIW,適用以下信息才能清除體內可選擇爲所有文本項目,或與特定的選擇選擇使用它來對特定元素禁止選擇/阻力:

body { 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
} 
+0

是啊,我很興奮,當我發現這個和整個我開發的應用程序來實現它。當它不起作用時,我被粉碎了。對於STANDARDS答案爲+1,即使它在大多數時間或大多數情況下都不起作用。 –