私はjqueryUIとjQueryを使用draggable
していますが、すべてのドラッグ可能オブジェクトはjqueryクローンヘルパーを使用し、ドラッグ可能オブジェクトをドロップ可能に追加します。
これが私のコードです
$('#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を基準にしています。
位置はドロップ可能に対して相対的ではないため、ドラッグ可能はランダムな場所にドロップされます。全体として、ドロップ可能とドラッグ可能な統合は緊密ではありません。スムーズにしたいです。