我有兩個jquery.ui可拖動。我限制他們的運動到y軸。如果將某個人拖到某個y位置,我希望另一個人自動移動到相同的y位置,反之亦然。有沒有人曾將其中的兩個連在一起?是否有可能將兩個jquery.ui可拖拽鏈接在一起?
5
A
回答
11
已更新:腳本和演示已更新,因此拖動時不再限制爲y軸。
該腳本查找類「組」,後面跟着一個數字來拖放這些組合對象。我發佈了一個demo here。
HTML
<div class="demo">
<div id="draggable">
<p>Drag from here</p>
<div class="dragme group1"><img src="image1.jpg"><br>Group 1</div>
<div class="dragme group1"><img src="image2.jpg"><br>Group 1</div>
<div class="dragme group2"><img src="image3.jpg"><br>Group 2</div>
<div class="dragme group2"><img src="image4.jpg"><br>Group 2</div>
</div>
<div id="droppable">
<p>Drop here</p>
</div>
</div>
腳本
$(document).ready(function() {
// function to get matching groups (change '.group' and /group.../ inside the match to whatever class you want to use
var getAll = function(t) {
return $('.group' + t.helper.attr('class').match(/group([0-9]+)/)[1]).not(t);
};
// add drag functionality
$(".dragme").draggable({
revert: true,
revertDuration: 10,
// grouped items animate separately, so leave this number low
containment: '.demo',
stop: function(e, ui) {
getAll(ui).css({
'top': ui.helper.css('top'),
'left': 0
});
},
drag: function(e, ui) {
getAll(ui).css({
'top': ui.helper.css('top'),
'left': ui.helper.css('left')
});
}
});
$("#droppable").droppable({
drop: function(e, ui) {
ui.draggable.appendTo($(this));
getAll(ui).appendTo($(this));
}
});
});
5
我沒有做過,但我建議使用drag
事件來調整相應的其他元素的位置:
$('.selector').draggable({
...,
drag: function(event, ui) {
},
...
});
的ui
對象將包含信息(在財產ui.offset
),你可以用於手動重新定位其他元素。
0
您將不得不明確設置這兩個元素的Y軸。
爲此,無論是在這兩個元素的事件處理函數中,您將必須設置Y軸或綁定兩個元素具有相同的功能。
快樂編碼。
1
https://forum.jquery.com/topic/dragging-a-group-of-items-alsodrag-like-alsoresize
我發現UI可拖動的擴展()。它的工作原理相同的方式爲「alsoResize」的UI調整大小(),即
添加插件代碼主要jQuery的UI庫後。
$.ui.plugin.add('draggable', 'alsoDrag', {
start: function() {
var that = $(this).data("ui-draggable"),
o = that.options,
_store = function (exp) {
$(exp).each(function() {
var el = $(this);
el.data("ui-draggable-alsoDrag", {
top: parseInt(el.css("top"), 10),
left: parseInt(el.css("left"), 10)
});
});
};
if (typeof(o.alsoDrag) === "object" && !o.alsoDrag.parentNode) {
if (o.alsoDrag.length) { o.alsoDrag = o.alsoDrag[0]; _store(o.alsoDrag); }
else { $.each(o.alsoDrag, function (exp) { _store(exp); }); }
}else{
_store(o.alsoDrag);
}
},
drag: function() {
var that = $(this).data("ui-draggable"),
o = that.options,
os = that.originalSize,
op = that.originalPosition,
delta = {
top: (that.position.top - op.top) || 0,
left: (that.position.left - op.left) || 0
},
_alsoDrag = function (exp, c) {
$(exp).each(function() {
var el = $(this), start = $(this).data("ui-draggable-alsoDrag"), style = {},
css = ["top", "left"];
$.each(css, function (i, prop) {
var sum = (start[prop]||0) + (delta[prop]||0);
style[prop] = sum || null;
});
el.css(style);
});
};
if (typeof(o.alsoDrag) === "object" && !o.alsoDrag.nodeType) {
$.each(o.alsoDrag, function (exp, c) { _alsoDrag(exp, c); });
}else{
_alsoDrag(o.alsoDrag);
}
},
stop: function() {
$(this).removeData("draggable-alsoDrag");
}
});
0
這是在顯着的答覆中提到的代碼的簡化版本(像我這樣的傻瓜):
在HTML
<div id="div1" class="group">...</div> <div id="div2"class="group">...</div>
在腳本標籤
$(document).ready(function(){ //to get the group var getGroup = function() { return $(".group"); }; // add drag functionality $(".group").draggable({ revertDuration: 10, // grouped items animate separately, so leave this number low containment: "window", scroll: false, stop: function(e, ui) { getGroup(ui).css({ 'top': ui.helper.css('top'), }); }, drag: function(e, ui) { getGroup(ui).css({ 'top': ui.helper.css('top'), 'left': ui.helper.css('left') }); } }); });
相關問題
- 1. 一個可拖拽的,兩個可拖拽(一個是可排序的)
- 2. 在一個頁面上的兩個可拖拽和兩個可拖拽
- 3. jQuery可拖拽/可拖拽
- 4. 是否有可能添加一個鏈接的HTML鏈接到jQuery的可拖動/可拖放文本?
- 5. 可拖拽的位置在可拖拽
- 6. jquery ui可拖拽/可拖拽,掉落時可交換拖拽
- 7. 我該如何限制一組可拖拽到一個droppable,另一組可拖拽到第二個可拖拽
- 8. GTK中的可拖拽鏈接框
- 9. Jquery可拖拽和droppable,切換到originalPosition另一個可拖拽
- 10. jquery可拖拽,可拖拽和編輯功能
- 11. 可可:如何在拖拽時變形拖拽圖像
- 12. AngularJS可選,可拖拽和可拖拽元素
- 13. 是否有可能在一個超鏈接
- 14. jquery可拖拽可排序
- 15. JQuery可拖拽droppble
- 16. jqueryui可拖拽,不能拖拽到容器外
- 17. 鏈接意圖 - 是否有可能?
- 18. 是否有可能鏈接PHP需求?
- 19. 是否有可能在兩個項目
- 20. 是否有可能這兩個功能
- 21. 可拖拽的元素在拖拽的頁面中拖動
- 22. jQuery可拖拽+可拖拽 - 物理移動拖拽項目到被拖拽的容器
- 23. jQuery可拖拽/可拖拽目標組件
- 24. JQuery可拖拽和可拖拽的追加問題
- 25. 可以點擊jQuery可拖拽父開始拖拽?
- 26. 是否有可能添加一個超鏈接到ASP LinkButton
- 27. 是否有可能「POST」通過一個鏈接(<a href>)
- 28. 是否有可能鏈接:不()然後:最後一個孩子?
- 29. 是否有可能有兩個curl_init
- 30. 是否有可能在一個表中有兩個FILESTREAM列?
我在getAll的return語句中收到「Uncaught TypeError:無法讀取null屬性'1'」。 – user3281466 2015-06-29 11:42:03
「創建」事件期間'ui'參數是'undefined'。所以當時不要使用'getAll'函數。 – Mottie 2015-06-29 20:18:06