2012-01-31 34 views
13

各種JavaScript庫(如jQuery UI)提供拖放式交互,您可以將拖動元素的constrain the movement拖動到單個軸或特定區域內。如何限制使用HTML5本地拖放時的移動?

使用原生HTML5 drag and drop API可以這樣做嗎?

+5

鏈接到w3schools應被視爲重罪。 – artistoex 2014-11-14 09:03:50

+0

[HTML5:拖放在X軸上而沒有淡化?]的可能重複(http://stackoverflow.com/questions/8933513/html5-drag-drop-on-x-axis-and-without-fade) – SiliconMind 2015-04-26 19:47:16

+0

我知道這是一箇舊帖子......但我通過在'dragstart'上創建一個克隆元素來解決這個問題,隱藏原始內容,然後用'dragover'事件設置克隆的位置 - 它可以被約束。與使用'mousemove'沒有多大區別。這比完全重寫拖放更容易 - 我相信很多人都有。 – mseifert 2017-04-12 01:44:16

回答

7

完全不同! jQuery UI拖放使元素在頁面中移動(具有頂部和左側CSS屬性)。

本地HTML5拖放API只允許您移動可拖動元素的「幻影」(當然,您可以在拖動幻影時隱藏原始元素)。

該API與a lot of event但沒有,你不能限制鼠標位置,所以你不能約束到一個單一的軸(即使鼠標離開頁面,導致鬼跟隨鼠標位置(但事件可能可能停止操作))。

+3

+1,我更新了從W3Schools到MDN的鏈接,以避免成爲這個問題的主題。 – 2014-11-14 15:18:50

+7

我從來沒有聯繫過W3schools,那是編輯我的問題的人。這個網站是跛腳的。 – callum 2014-11-14 18:28:26