sto usando jQuery UI e jQuery draggable
, tutti i miei draggables utilizzare jQuery clone aiutante e aggiunge il draggable-droppable.jQuery Draggables e Droppables posizionamento
Ecco il mio codice
$('#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,
});
}
});
sto impostando la posizione del clone con .css('top', ui.absolutePosition.top);
e css('left', ui.absolutePosition.left);
ma la posizione è relativa al corpo.
La posizione non è relativa al droppable che fa cadere il trascinabile in posizioni casuali. Nel complesso, l'integrazione droppable e trascinabile non è stretta. Voglio renderlo più liscio.
dove la variabile droppableOffset è jQuery ('# squeezePage #droppable'). Offset(); – Haris
Ho passato così tante ore alla ricerca di una soluzione simile .. grazie mille. –