Ho il mio schermo diviso in due DIV
s. A sinistra DIV
ho alcuni 50x50 pixel DIV
s, a destra DIV
Ho una griglia vuota composta da 80x80 LI
s. Gli DIV
s a sinistra sono trascinabili e una volta rilasciati su un LI
, devono essere allineati al centro di tale LI
.jQuery draggable + droppable: come scattare l'elemento rilasciato sull'elemento lasciato cadere
Suoni semplici, giusto? Non so come fare a fare questo. Ho provato manipolando le proprietà dello e left
del DIV
abbandonate per corrispondere a quelle dello LI
in cui sono state rilasciate, ma le proprietà left
e top
sono relative a sinistra DIV
.
Come posso fare in modo che l'elemento rilasciato si agganci al centro dell'elemento in cui è caduto? Deve essere semplice, vero?
Modifica: Sto usando jQuery UI 1.7.2 con jQuery 1.3.2.
Edit 2: Per chiunque altro ha questo problema, questo è come ho riparato:
ho usato la soluzione di Keith della rimozione dell'elemento trascinato e l'immissione all'interno del caduto-on elemento nel drop
callback di il plugin droppable:
function gallerySnap(droppedOn, droppedElement)
{
$(droppedOn).html('<div class="drop_styles">'+$(droppedElement).html()+'</div>');
$(droppedElement).remove();
}
io non l'elemento sceso a essere trascinabile di nuovo, ma se lo fai, basta legano draggable di nuovo.
Per me questo metodo ha risolto anche il problema riscontrato durante il posizionamento degli elementi rilasciati (che sarebbe relativo a sinistra DIV
) e lo scorrimento all'interno del secondo DIV
. (Gli elementi resterebbero fissi sulla pagina, ora scorrono lungo).
Ho giocato con le opzioni di snap per renderlo bello durante il trascinamento, quindi grazie a karim79 per questo suggerimento.
Probabilmente non vincerò alcun premio di codice Awesome con questo, quindi se si vedono margini di miglioramento, si prega di condividere!
Grazie, stavo pensando a questa soluzione. La soluzione snap-to di karim79 non risolve completamente il mio problema, quindi farò un tentativo. – 10goto10