回答
還沒有嘗試過,但我首先想到的是收集您希望它改變類的區域的x,y座標,高度,寬度。然後,假設你可以得到被拖動的對象的x,y座標,當對象位於這些邊界內時,可以在外部刪除類時添加class。
如果我的區域已經分配了類,該怎麼辦? – santa
爲什麼所有這些工作時有一個jQuery插件來做到這一點? OP確實提到了jQuery ... –
是的,這當然有可能。 jQuery UI提供了一些方便的選項和事件來做到這一點。
對於初學者來說,可拖動的元素在被拖動時總是可以被類.ui-draggable-dragging
引用。
droppable
方法然後提供了一個名爲over
的事件,只要有效的可拖動對象懸停在它上面,它就會執行一個函數。所以,在這個函數中,我們可以參考.ui-draggable-dragging
並向它添加一個類。
Out
和drop
也提供了事件,我們可以用相同的方式定位可拖動元素。下面是它會怎樣看:
$("#droppable").droppable({
// tolerance can be set to 'fit', 'intersect', 'pointer', or 'touch'
tolerance: 'intersect',
// Add .hoverClass whenever #draggable is being hovered over #droppable
over: function(event, ui) {
$('.ui-draggable-dragging').addClass('hoverClass');
},
// Remove .hoverClass whenever #draggable is no longer hovered over #droppable
out: function(event, ui) {
$('.ui-draggable-dragging').removeClass('hoverClass');
},
// Add .dropClass whenever #draggable is dropped on #droppable
drop: function(event, ui) {
$('.ui-draggable-dragging').removeClass('hoverClass').addClass('dropClass');
}
});
上面的代碼添加時#draggable
與#droppable
相交的類,然後替換時#draggable
掉落到#droppable
該類。此外,當兩個元素不再相交時,將刪除.hoverClass
。這是一個working example on jsfiddle。
希望有所幫助。
很好的答案。 mootools/jQuery的拖放功能勝過了HTML5拖放功能中的所有功能,甚至不值得搞亂HTML5的實現。 –
沒有jquery ui的解決方案是什麼? –
我發現使用準備好的回調提供的ui對象很有趣,所以你不必再做一個dom查詢。通過拖放&下降;-) ...
over: function(e, ui) {
$(ui.helper[0]).addClass("success");
}
...
最佳尤其是當每個小的性能提升還是不錯的。
非常有趣,謝謝。 – santa
- 1. Drag Drag拖拽時添加拖拽
- 2. 可拖拽的元素在拖拽的頁面中拖動
- 3. 將元素拖放到div時,將url名稱添加到url
- 4. 將類添加到同級元素上的元素基礎
- 5. jquery同時拖拽兩個類
- 6. 更改在運行時添加到DOM元素的CSS類
- 7. 元件拖拽
- 8. 將Css類添加到所有<input type'text'>元素? Javascript/Css?
- 9. 拖動內部元素時調整父元素的大小。 (jqueryUI可拖拽)
- 10. Swift中的可拖拽UIButton /元素?
- 11. 拖拽元素的位置(MouseDragElementBehavior)
- 12. jQuery的拖拽元素和Droppables定位
- 13. css&jQuery:點擊/拖拽改變尺寸的元素
- 14. 如何將新圖標添加到HTML元素的CSS類
- 15. 將CSS class y添加到類x的元素中?
- 16. jQuery可拖拽輸入元素
- 17. 拖拽沒有移動元素
- 18. 如何用JavaScript拖拽網頁元素
- 19. 將CSS規則添加到使用JavaScript添加的元素
- 20. 只有在添加了另一個類時纔將類添加到元素中
- 21. CSS在元素內添加元素?
- 22. 可拖拽的位置在可拖拽
- 23. jQuery Array:將CSS類添加到特定元素
- 24. 在刷新時將相同的隨機類添加到多個元素?
- 25. 將一個類添加到「this」元素
- 26. AngularJS - 將子類添加到子元素
- 27. 將html類添加到tinymce td元素
- 28. JQuery將類添加到父元素
- 29. 將類添加到html元素動態
- 30. 將類添加到select2元素
結束時添加類,刪除並添加新類時被刪除? –
您是否使用jQuery UI庫(可拖動/可拖放的交互)? –
是的,我使用拖放jQuery UI。 – santa