Sto creando un'interfaccia per consentire a un utente di ingrandire un'immagine e trascinare la versione ingrandita all'interno di una div di maschera di ritaglio.Trascinare un'immagine ingrandita all'interno di una maschera di ritaglio div utilizzando jQuery trascinabile?
Ho un div 200px by 200px
che ho impostato overflow: nascosto. Quindi carico un file std (<img src="etc">
) nel div che è, per esempio, 1000px by 1000px
.
Poi ho utilizzare jQuery
$("#my-image").draggable({ containment: [-85,83,99,222] });
I numeri sono codificati. Finora posso trovarli solo per tentativi ed errori ...
Il problema è che ogni volta che apporto una modifica alla pagina (cioè inserisco un altro elemento sopra il mio contenitore div) la dimensione della pagina cambia e il mio codice fisso [ x1, y1, x2, y2] smettono di funzionare correttamente.
Il problema principale è che non capisco pienamente [x1, y1, x2, y2] ...
Ecco la documentazione jQuery per quanto riguarda questo:
http://docs.jquery.com/UI/Draggable#option-containment
Ho ragione di pensare che x1 è il punto più a sinistra trascinabile, x2 è il punto più droppabile giusto? (e lo stesso per y1 & y2)?
Se sì, quale sarebbe la migliore strategia per calcolarli dinamicamente?
Inoltre, qualsiasi altra soluzione rapida e semplice al problema principale di "Trascinare un'immagine ingrandita all'interno di una maschera di ritaglio div" sarebbe molto apprezzata.
Questo è fantastico. Mi hai aiutato di sicuro! – esvendsen
Grazie, è grandioso. Spero che il js sia ancora attuale perché questo risolve un problema reale per me. – monotasker
Hai fatto la mia giornata! Era importante impostare la posizione @zero. Stavo lavorando con un'immagine ingrandita doppia con 'transform: scale (2);' proprietà CSS, quindi ho dovuto impostare anche 'transform-origin: left top 0px;' e che ha funzionato correttamente! –