jQueryのDraggablesとDroppablesポジショニング
-
26-09-2019 - |
質問
私はjQueryのUIとjQueryのdraggable
を使用しています、すべての私のdraggablesはjqueryののクローンのヘルパーを使用すると、のドラッグからドロップ可能の追加しますP>
ここに私のコードです。
$('#squeezePage #droppable').droppable({
tolerance: 'fit',
accept: '#squeezeWidgets .squeezeWidget',
drop: function(event, ui) {
var dropElem = ui.draggable.html();
var clone = $(dropElem).clone();
clone.css('position', 'absolute');
clone.css('top', ui.absolutePosition.top);
clone.css('left', ui.absolutePosition.left);
$(this).append(clone);
$(this).find('.top').remove();
$(this).find('.widgetContent').slideDown('fast');
$(this).find('.widgetContent').draggable({
containment: '#squeezePage #droppable',
cursor: 'crosshair',
grid: [20, 20],
scroll: true,
snap: true,
snapMode: 'outer',
refreshPositions: true
});
$(this).find('.widgetContent').resizable({
maxWidth: 560,
minHeight: 60,
minWidth: 180,
grid: 20,
});
}
});
私は.css('top', ui.absolutePosition.top);
とcss('left', ui.absolutePosition.left);
とクローンの位置を設定していますが、位置はBODYに相対します。
位置は、ランダムな場所にドラッグドロップを行うドロップ可能に対するありません。全体的に、ドロップ可能とドラッグ可能な統合はタイトではありません。私はそれがよりスムーズにしたい。
解決
私は体のオフセットおよびウィジェットクローンのオフセットからそれを差し引く取得しています。
clone.css('top', ui.position.top - droppableOffset.top);
clone.css('left', ui.position.left - droppableOffset.left);
これは動作します!
所属していません StackOverflow