Come funziona l'operazione di trascinamento della selezione. Tecnica Drag-n-Drop usando jQuery. Limitazione sugli elementi mobili consentiti

La funzione Drag and Drop può aiutarti a migliorare le prestazioni del tuo iPad. Ecco come puoi usarlo.

Quindi puoi spostare un file da un servizio di archiviazione cloud a un altro, copiare il testo da Safari in un'app di modifica del testo per aggiungere un preventivo o creare backup alcune foto nell'applicazione di archiviazione file.

Come trascinare e rilasciare foto, file e testo

1. Tocca e tieni premuta la foto, il file o il testo evidenziato che desideri trascinare su un'altra app.

2. Trascina l'elemento nella posizione desiderata in questa applicazione o in un'altra che hai aperto in Slide Over o Split View e rilascia.

Come trascinare e rilasciare più foto o file contemporaneamente

1. Tocca e tieni premuta una delle foto o dei file che desideri trascinare.

2. Mentre trascini l'elemento corrente, tocca un'altra foto o un altro file che desideri trascinare. Fallo di nuovo con tutti gli elementi che vuoi spostare.

3. Trascina tutti gli oggetti selezionati nel punto designato in un'altra applicazione che hai aperto in Slide Over o Split View e rilasciali.

Come trascinare il testo da un'applicazione all'altra

1. Tocca e tieni premuta la parte del testo che desideri trascinare per selezionarla.

2. Usa i punti di selezione per evidenziare il resto del testo che desideri trascinare.

3. Tenere premuto il testo selezionato.

4. Trascina il testo sull'applicazione in cui desideri inserirlo e rilascialo.

Come modificare la posizione delle icone di più applicazioni contemporaneamente utilizzando "Drag and Drop"

Mentre la maggior parte delle funzionalità di trascinamento della selezione di iOS funziona solo su iPad, questo trucco funziona effettivamente sia su iPhone che su iPad. Ciò consente di organizzare la posizione delle applicazioni nella schermata iniziale utilizzando « Trascina e rilascia" invece di spostarli uno per uno.

1. Toccare e tenere premuta l'icona dell'app che si desidera riposizionare nella schermata iniziale.

2. Tocca altre app che desideri spostare.

3. Trascina queste app nella pagina o nella cartella in cui desideri che si trovino e rilasciale.

Recentemente ho avuto l'idea di sviluppare un gioco per Android. Per cominciare, ho deciso di scrivere scacchi. Ho pensato alla tecnologia Trascinare e rilasciare perfetto per implementare il meccanismo per lo spostamento delle forme. Per chi non lo sapesse, lo prendo atto il metodo di trascinamento della selezione è nella possibilità di trascinare alcuni oggetti grafici su altri ed eseguire una o l'altra azione dopo il rilascio. L'esempio più semplice- rimuovi il collegamento dal desktop del tuo PC trascinandolo nel cestino. "Gettando" l'etichetta nel cestino, diciamo al sistema che vogliamo far interagire questi due oggetti. Il sistema riceve il nostro segnale e decide quale azione intraprendere. Il trascinamento della selezione è diventato molto diffuso grazie alla sua chiarezza intuitiva. Questo approccio è supportato dalla nostra esperienza di interazione con oggetti del mondo reale e funziona alla grande in un ambiente virtuale. Come per gli scacchi, utilizzando il drag and drop è tecnologicamente più semplice determinare la cella dove l'utente ha trascinato il pezzo, poiché non è necessario calcolare il numero di cella dalle coordinate del punto di rilascio. Questo lavoro sarà preso in carico dalla macchina virtuale.

Scopi dell'utilizzo della tecnologia Drag n Drop

L'utilizzo della tecnologia drag and drop mi consente di risolvere tre problemi con poco sangue:

  1. Visualizzazione del movimento. Quando l'utente tocca una forma e inizia a spostarla sullo schermo, la forma viene sostituita da un disegno più piccolo. Pertanto, l'utente comprende che la figura viene acquisita.
  2. Ho limitato l'area di movimento della figura alle dimensioni della tavola.
  3. Se l'utente rilascia la forma nel posto sbagliato, dovrebbe tornare alla sua posizione originale.

I compiti sono definiti, iniziamo la loro attuazione.

Sostituisci ImageView al tocco

Tutte le mie forme sono oggetti ImageView. Sfortunatamente, si è scoperto che l'implementazione del Drag & Drop in Android non consente "immediatamente fuori dagli schemi" di sostituire l'immagine di un oggetto quando viene toccato. Tuttavia, questo compito è abbastanza risolvibile tramite l'API. Dobbiamo eseguire una serie di semplici passaggi:

  1. Crea un oggetto DragShadowBuilder.
  2. Chiama il metodo startDrag.
  3. Nascondi il nostro ImageView che mostra la forma chiamando il metodo setVisibility con il parametro View.INVISIBLE. Di conseguenza, solo l'oggetto DragShadowBuilder rimarrà sullo schermo, il che segnalerà all'utente che la forma è stata acquisita.

Queste azioni devono essere implementate nel gestore OnTouchListner dell'oggetto ImageView. Per fare ciò, sovrascriveremo il metodo onTouch:

@Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (motionEvent. getAction() == MotionEvent. ACTION_DOWN) ( ClipData clipData= ClipData. newPlainText("" , "" ) ; View. DragShadowBuilder dsb= new View. DragShadowBuilder (view) ;view.startDrag(clipData, dsb, view, 0 ) ;view.setVisibility(View.INVISIBLE) ; return true ; ) else ( return false ; ) )

Tutto è molto semplice. Quindi, con la sostituzione dell'immagine decisa, passiamo al compito successivo.

Limitazione dell'area di trascinamento per la funzione di trascinamento

La limitazione dell'area di trascinamento è correlata a un problema. Il fatto è che se rilasci la forma all'esterno della scheda, l'evento di rilascio non si verificherà, perché l'utente ha lasciato cadere l'oggetto in un luogo vuoto e l'oggetto non ha nulla con cui interagire. Di conseguenza, la figura non tornerà al suo stato originale e rimarrà nascosta per sempre. Ho passato molto tempo a leggere la documentazione, ma non ho trovato un modo per limitare l'area di trascinamento degli oggetti. La rivelazione è arrivata all'improvviso. Non ho bisogno di limitare affatto l'area, ho bisogno di sapere se l'utente ha rilasciato la figura correttamente o meno.

Determinazione del rilascio corretto
Ho trovato le risposte alle mie domande nella sezione "Gestione degli eventi di trascinamento" sul sito degli sviluppatori Android. Ecco alcuni punti chiave:

  1. Quando l'utente termina il trascinamento, l'evento ACTION_DRAG_ENDED viene attivato nel gestore DragListeners.
  2. In DragListener, puoi ottenere informazioni più dettagliate sull'operazione di trascinamento chiamando il metodo DragEvent.getResult().
  3. Se DragListener restituisce true in risposta a un evento ACTION_DROP, anche la chiamata getResult restituirà true, altrimenti restituirà false.

Quindi ho bisogno di catturare l'evento ACTION_DRAG_ENDED e chiamare il metodo getResult. Se restituisce false, l'utente ha trascinato la forma fuori dal tabellone e devo rendere visibile ImageView.

@Override public boolean onDrag(View view, DragEvent dragEvent) ( int dragAction= dragEvent. getAction() ; View dragView= (View) dragEvent. getLocalState() ; if (dragAction== DragEvent. ACTION_DRAG_EXITED) ( contiene Dragable= false ; ) else if (dragAction== DragEvent. ACTION_DRAG_ENTERED) ( contieneDragable= true ; ) else if (dragAction== DragEvent. ACTION_DRAG_ENDED) ( if (dropEventNotHandled(dragEvent) ) ( dragView. setVisibility(View. VISIBLE) ; ) ) else if (dragAction= = DragEvent. ACTION_DROP& amp;& amp; ) ; )

Ora l'utente può rilasciare la figura ovunque e non accadrà nulla di terribile.

Determinazione delle mosse consentite

L'ultima parte dell'articolo è dedicata alla verifica della validità della mossa che l'utente sta cercando di fare. Prima di discutere questo argomento in dettaglio, farò una piccola osservazione che spiega la struttura della mia domanda. La scacchiera è rappresentata come TableLayout e ogni cella è un discendente di LinearLayout e dispone di un OnDragListener.

Inoltre, ogni OnDragListener fa riferimento a un oggetto "mediatore", che si occupa dell'interazione degli oggetti di gioco e ricorda la posizione della cella corrente.

Quando l'utente trascina una forma su una cella, sono possibili le seguenti azioni:

  1. Utilizzo dell'evento ACTION_DRAG_ENTERED per impostare la variabile 'containsDraggable' su true.
  2. Utilizzo dell'evento ACTION_DRAG_EXITED per impostare la variabile 'containsDraggable' su false.
  3. Utilizzo dell'evento ACTION_DROP per interrogare il middleware se è consentito posizionare una forma in questa cella.

Di seguito è riportato il codice che implementa la logica descritta

@Override public boolean onDrag(View view, DragEvent dragEvent) ( int dragAction= dragEvent. getAction() ; View dragView= (View) dragEvent. getLocalState() ; if (dragAction== DragEvent. ACTION_DRAG_EXITED) ( contiene Dragable= false ; ) else if (dragAction== DragEvent. ACTION_DRAG_ENTERED) ( contieneDragable= true ; ) else if (dragAction== DragEvent. ACTION_DRAG_ENDED) ( if (dropEventNotHandled(dragEvent) ) ( dragView. setVisibility(View. VISIBLE) ; ) ) else if (dragAction= = DragEvent.ACTION_DROP& amp;& amp; contieneDragable) ( checkForValidMove((ChessBoardSquareLayoutView) view, dragView) ; dragView. setVisibility(View. VISIBLE) ; ) return true ; )

Come puoi vedere, indipendentemente dal fatto che lo spostamento sia valido o meno, ImageView è impostato sullo stato visibile. Volevo che l'utente vedesse la forma muoversi. In precedenza ho detto che la cella è figlia di LayoutView. Questo viene fatto per semplificare lo spostamento di ImageView da una cella all'altra. Di seguito è riportato il codice per il metodo checkForValidMove, che mostra come viene spostato ImageView.

private void checkForValidMove(ChessBoardSquareLayoutView view, View dragView) ( if (mediator. isValidMove(view) ) ( ViewGroup owner= (ViewGroup) dragView. getParent() ; owner. removeView(dragView) ; view. addView(dragView) ; view. setGravity (Gravity.CENTER) ;view.showAsLanded();mediator.handleMove(view) ; ) )

Spero che questo articolo ti aiuti nello sviluppo dei tuoi progetti.

Uso della tecnologia trascinare e rilasciare (trascinare e rilasciare) consente all'utente di spostare vari oggetti da uno all'altro, ad esempio elementi di un elenco all'altro. Per fare ciò, è necessario utilizzare due controlli: un sink e una sorgente. Il ricevitore è l'oggetto che riceverà l'oggetto sorgente (oggetto mobile).

Gli eventi che si verificano durante il movimento degli oggetti sono elencati di seguito nell'ordine in cui si verificano.

OnStartTrascina(digitare TStartDragEvent) - generato dall'oggetto di origine all'inizio dell'operazione. Parametri passati al gestore eventi: oggetto ricevitore DragObject (tipo TDragObject), oggetto sorgente (tipo TObject).

OnDragOver(digitare TDragOverEvent) - crea un oggetto di destinazione quando un oggetto mobile viene posizionato sopra di esso. Parametri passati al gestore eventi: Oggetto mittente mittente (tipo TObject), Oggetto sorgente sorgente (tipo TObject), Stato movimento stato (tipo TDragState), X e Y (tipo intero) - coordinate correnti del puntatore del mouse, Accept (tipo booleano ) segno di conferma dell'operazione di trasloco. Lo stato di movimento rende chiaro se l'oggetto in movimento si trova nell'area del ricevitore, se si muove in essa, se l'ha lasciato. I parametri passati consentono all'oggetto ricevente di accettare o rifiutare l'oggetto di origine. Il parametro Accept è impostato su Trye se l'operazione di spostamento viene accettata, su False in caso contrario.

onDragDrop (tipo TDragDropEvent) - Generato dall'oggetto di destinazione quando l'oggetto trascinato viene rilasciato su di esso. Al gestore dell'evento vengono passate le coordinate correnti del puntatore del mouse, l'oggetto ricevitore Sender (tipo TObject) e l'oggetto movimento Source originale (tipo TObject).

onEndDrag (tipo EndDragEvent) - Generato al termine di un'operazione di trascinamento. Le coordinate X e Y del punto in cui l'oggetto sorgente Sender e l'oggetto destinatario Destinazione vengono passati al gestore eventi.

Per creare un drag and drop è sufficiente implementare due eventi: OnDragDrop e OnDragOver con la proprietà DragMode impostata su dmAutomatic. In caso contrario, l'inizio dell'operazione di spostamento, il metodo BeginDrag, deve essere codificato dal programmatore.

Per consolidare il materiale, creeremo la seguente applicazione. Posizionare un componente Pannello nel modulo. Imposta la proprietà DragMode di Controllo oggetti su dmAutomatic. Seleziona l'oggetto modulo e utilizza la finestra di ispezione Oggetti per creare i seguenti eventi:

Procedura TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); inizia se Sorgente = Pannello1 quindi Accetta:= Vero altrimenti Accetta:= Falso; fine; procedura TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer); beginPanel1.Left:=X; Pannello1.Alto:=Y; fine;

Ora, eseguendo l'applicazione e premendo il pulsante del mouse sul pannello, possiamo spostare l'oggetto pannello in tutto il modulo.

Conclusione: abbiamo conosciuto la tecnologia trascinare e rilasciare(trascina e rilascia) e l'ho usato in pratica.

Da molto tempo esistono funzioni JavaScript che ci consentono di creare interfacce drag & drop. Ma nessuna di queste implementazioni è nativa per il browser HTML5 ha il suo modo di creare interfacce drag & drop (con un piccolo aiuto da JavaScript). In questo articolo vi spiegheremo come ottenerlo...

Supporto browser

Il trascinamento della selezione HTML5 è attualmente supportato da tutti i principali browser desktop (incluso IE (anche IE 5.5 ha un supporto parziale)), ma non è supportato da nessuno dei browser mobili più diffusi.

Eventi Drag&Drop

In ogni fase del drag & drop, vengono attivati ​​vari eventi per far sapere al browser quale codice JavaScript eseguire. Elenco degli eventi:

  • dragStart: attivato quando l'utente inizia a trascinare gli elementi;
  • dragEnter: attivato quando l'elemento trascinato viene prima trascinato sull'elemento di destinazione;
  • dragOver: attivato quando il mouse si sposta su un elemento mentre è in corso un trascinamento;
  • dragLeave: attivato se il cursore dell'utente lascia l'elemento durante il trascinamento;
  • drag: attivato ogni volta che spostiamo il mouse mentre trasciniamo il nostro elemento;
  • drop: attivato quando viene eseguito il drop effettivo;
  • dragEnd: attivato quando l'utente rilascia il pulsante del mouse durante il trascinamento di un oggetto.

Con tutti questi listener di eventi, hai molto controllo su come funzionerà l'interfaccia.

oggetto trasferimento dati

È qui che avviene tutta la magia del drag&drop. Questo oggetto contiene i dati inviati dall'operazione di trascinamento. I dati possono essere impostati e recuperati diversi modi, i più importanti dei quali sono:

  • dataTransfer.effectAllowed=value: Restituisce i tipi di azione consentiti, i valori possibili sono nessuno, copy, copyLink, copyMove, link, linkMove, move, all e uninitialized.
  • dataTransfer.setData(format, data): aggiunge dati e formato specifici.
  • dataTransfer.clearData(format): cancella tutti i dati per un formato specifico.
  • dataTransfer.setDragImage(element, x, y): imposta l'immagine che vuoi trascinare, i valori xey indicano dove dovrebbe essere il cursore del mouse (0, 0 lo posizionerà in alto a sinistra).
  • data = dataTransfer.getData(format) : come suggerisce il nome, restituisce i dati per un formato particolare.

Creazione di un esempio di trascinamento della selezione

Ora inizieremo a creare un semplice esempio di trascinamento della selezione. Come puoi vedere abbiamo due div piccoli e uno grande, possiamo trascinare i div piccoli all'interno di quello grande e persino spostarli indietro.

Trascinando un oggetto

La prima cosa che dobbiamo fare è creare l'HTML. Rendiamo i div trascinabili con l'attributo trascinabile:

Una volta fatto, dobbiamo definire una funzione JavaScript che si attiverà non appena iniziamo a spostare questo elemento:

Funzione dragStart(ev) ( ev.dataTransfer.effectAllowed="move"; ev.dataTransfer.setData("Text", ev.target.getAttribute("id")); ev.dataTransfer.setDragImage(ev.target,100,100) ; restituisce vero; )

In questo codice, dichiariamo prima il tipo di effetto che stiamo consentendo nell'operazione e lo impostiamo in modo che si muova. Nella seconda riga, impostiamo i dati con cui lavorare, dove il testo sarà Testo e il valore sarà l'ID dell'elemento che stiamo trascinando. Successivamente, utilizziamo il metodo setDragImage, che imposterà ciò che trascineremo e quindi dove si troverà il cursore durante il trascinamento, e poiché i cubi sono 200 per 200 pixel, lo abbiamo posizionato proprio al centro. Alla fine, torniamo indietro true.

Lascia cadere l'oggetto

Affinché un elemento accetti un rilascio, deve essere in ascolto di 3 eventi diversi: dragEnter, dragOver e l'evento di rilascio. Quindi aggiungiamo questo al nostro div HTML5 con ID grande:

funzione dragEnter(ev) ( ev.preventDefault(); restituisce true; ) funzione dragOver(ev) ( ev.preventDefault(); )

Nella prima funzione, definiamo cosa dovrebbe accadere quando l'elemento che stiamo trascinando raggiunge l'elemento desiderato dove dovrebbe verificarsi il rilascio, in questo caso stiamo solo impedendo il comportamento predefinito del browser. Successivamente, nella funzione dragOver, non consentiamo semplicemente che il rilascio avvenga per impostazione predefinita.

Nella parte successiva, definiamo una funzione per quando un elemento viene "lanciato" sul target desiderato:

Funzione dragDrop(ev) ( var data = ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); ev.stopPropagation(); return false; )

In quest'ultima parte, impostiamo prima la variabile data in cui otteniamo tutti i dati disponibili per il formato testo, quindi aggiungiamo i dati al div in cui vogliamo rilasciare l'elemento.

Rendi la sezione di rilascio un obiettivo

La demo mostra che due div possono essere riposizionati. Fortunatamente, aggiungere un altro obiettivo di rilascio è molto più semplice di quanto potresti pensare. Perché abbiamo già queste funzioni e tutto ciò che dobbiamo fare è aggiungere listener di eventi:

E questo è tutto ciò che serve per consentire al div di essere trascinato di nuovo in posizione.

Ci sono molte applicazioni drag&drop che sono costruite usando librerie JavaScript e sono spesso più facili da usare. Ma speriamo che in questa tecnica HTML5 e JavaScript vedrai il potenziale futuro per risolvere i tuoi problemi.

Le tecniche di trascinamento della selezione si sono evolute nel corso degli anni. Non sorprende che con l'aumento del numero di programmatori che sviluppano plug-in con open codice sorgente(ad es. per jQuery) i vecchi metodi vengono resuscitati. La libreria JavaScript è altamente adattiva e offre molti miglioramenti in questa era della tecnologia web.

In questo tutorial, creeremo uno script che possiamo utilizzare per creare rettangoli dinamici drag and drop sul nostro sito Web. Il processo è controllato da jQuery. Tali script fanno risparmiare tempo fornendo funzionalità già pronte! E la libreria drag and drop può essere utilizzata in altri progetti.

Prepariamo i contenuti

Prima di tutto, prepareremo un piccolo sito web per il progetto. Nella cartella del progetto, devi creare due directory con nomi degni di nota "js" e "css" e file vuoto indice.html . Il codice sarà molto semplice in modo che ci sia un'idea chiara del lavoro e ci sia un punto per ulteriori sviluppi.

Di seguito il codice del ns File HTML. Nel capitolo testa includiamo 3 script. Lo script jQuery principale verrà caricato dal server di Google Code. è incluso anche il nostro file style.css, che contiene le proprietà principali per la formatura aspetto esteriore il nostro documento.

trascinami

Si si. Esattamente io.

Posso essere trascinato anch'io

( zIndice: 200, opacità: .9 )

P.S. Puoi lasciarmi ovunque!

All'interno di una sezione corpo solo due blocchi div, che contengono entrambi i rettangoli. Il codice è abbastanza semplice e comprensibile. Le intestazioni con le classi sono posizionate all'interno di ogni rettangolo. gestore e gestore2. Questo è importante perché ogni rettangolo si comporta in modo diverso durante il trascinamento.


Installazione del CSS

Il codice HTML è molto semplice. Se capisci il markup di base, allora stili CSS inoltre non sarà difficile. Definisce principalmente margini, padding e colori.

Corpo,html ( famiglia di caratteri:Calibri, sans-serif; sfondo:#eaf3fb; dimensione del carattere:12px; altezza:1000px; altezza della linea:18px; ) p (altezza:30px; )

Selettori corpo, html utilizzato solo per la pagina demo. E tutto il contenuto è posizionato in due rettangoli trascinabili.

Dv1 ( width:200px; background-color:#eff7ff; border:1px solid #96c2f1; position:absolute; left:100px; top:100px; ) .dv1 h2 ( background-color:#b2d3f5; padding:5px; font- family:Georgia, "Times New Roman", Times, serif; font-size:1.0em; text-transform:maiuscolo; font-weight:grassetto; colore:#3a424a; margin:1px; cursor:move; ) .dv1 div ( padding:5px; margin-bottom:10px; ) .dv2 ( background-color:#f6ebfb; border:1px solid #a36fde; width:550px; position:absolute; cursor:move; left:400px; top:230px; ) .dv2 h2 ( background-color:#eacfe9; letter-spacing:-0.09em; font-size:1.8em; font-weight: bold; padding:15px; margin:1px; color:#241f24; cursor:move; ) .dv2 .content2 (padding:5px; margin-bottom:10px; )

Per entrambe le classi .dv1 e .dv2, utilizziamo il posizionamento assoluto. Questo non è necessario e probabilmente non è il massimo Il modo migliore per posizionare rettangoli trascinabili. Tuttavia, per il nostro esempio, questo posizionamento ha senso, perché ogni volta che la pagina viene aggiornata, i rettangoli vengono impostati in determinati punti.

Anche i caratteri e i colori sono diversi per i rettangoli per rendere più facile vedere la differenza.

In caso contrario, i titoli e il contenuto dei blocchi sono quasi identici. Se copi gli stili nel tuo progetto, cambia i nomi prima dell'esecuzione. In alcuni casi avrà più senso utilizzare ID invece di classi, ad esempio quando si utilizza una tecnica di trascinamento della selezione per un blocco specifico.

Analisi di JavaScript

I due file JavaScript contengono tutto il codice necessario per farlo funzionare. Salteremo i dettagli sull'utilizzo di jQuery, poiché non rientra nell'ambito di questo tutorial. Prestiamo attenzione al file jquery.dragndrop.js.

La riga 22 è la definizione della funzione Trascina.

$.fn.Drags = function(opts) ( var ps = $.extend(( zIndex: 20, opacity: .7, handler: null, onMove: function() ( ), onDrop: function() ( ) ), opts );

Questo imposta la variabile di ritorno e i dati di inizializzazione per Trascina. Questo metodo è ampiamente utilizzato quando si lavora con jQuery per passare opzioni ad altre funzioni. All'interno, impostiamo le variabili per tutte le opzioni disponibili per i rettangoli trascinabili.


La parte di codice seguente include gestori di eventi per la variabile trascina la selezione. Entrambi gli eventi lagna e far cadere funzioni di chiamata con il passaggio di parametri di evento ad esse. Questi eventi si verificano quando si preme il pulsante del mouse per trascinare un oggetto e quindi rilasciarlo.

Var dragndrop = ( trascina: function(e) ( var dragData = e.data.dragData; dragData.target.css(( left: dragData.left + e.pageX - dragData.offLeft, top: dragData.top + e.pageY - dragData.offTop )); dragData.handler.css(( cursor: "move" )); dragData.target.css (( cursor: "move" )); dragData.onMove(e); ), drop: function( e) ( var dragData = e.data.dragData; dragData.target.css(dragData.oldCss); //.css(( "opacity": "" )); dragData.handler.css("cursor", dragData. oldCss.cursor); dragData.onDrop(e); $().unbind("mousemove", dragndrop.drag) .unbind("mouseup", dragndrop.drop); ) )

Le nostre funzioni manipolano il posizionamento CSS di ogni oggetto. Se modifichi il posizionamento assoluto dei tuoi oggetti, non influirà sul funzionamento del tuo codice, perché ogni funzione JavaScript cambia qualunque stile sia definito per l'oggetto.

Nel resto del codice, il gestore viene controllato e altri stili vengono modificati esteticamente. Qui puoi aggiungere una modifica alla trasparenza, al carattere e al colore o aggiungere nuovi paragrafi.

Funzioni di trascinamento/rilascio

Il secondo file fn.js contiene codice molto semplice. Aspettiamo che il documento si carichi completamente, dopodiché chiamiamo le nostre funzioni. Sono definite due istanze di funzione Trascina, di cui si è parlato in precedenza.

Abbiamo due blocchi mobili con le classi .dv1 e .dv2 . Se devi lasciare un blocco mobile, devi solo rimuovere la seconda parte del codice. Anche l'aggiunta di un altro blocco mobile è facile. Devi solo aggiungere una nuova funzione in questo file.

Il primo passaggio consiste nell'impostare le opzioni quando si chiama la funzione. Assicurati di impostare il nome del gestore. Con esso, diciamo a jQuery quale gestore utilizzare quando si preme il pulsante del mouse in una determinata area del documento. Il nome del gestore può essere una classe o un attributo ID.

La nostra prima funzione ha due gestori di eventi onMove e onDrop. Entrambi chiamano nuove funzioni che vengono passate all'evento corrente come variabili. Qui è dove il codice HTML nel rettangolo viene manipolato per aggiornarsi ad ogni mossa. Questo è un ottimo effetto per dimostrare come puoi controllare il processo con semplici eventi jQuery.

Nella seconda funzione, utilizziamo i parametri z-Index e opacità. Puoi aggiungerne altri proprietà CSS? ma ciò richiederebbe la riscrittura del codice JavaScript per convalidare le installazioni. Ad esempio, puoi passare uno stile di carattere o valori diversi per l'altezza e la larghezza del rettangolo mobile: un trucco molto interessante!

Conclusione

Come risultato di un piccolo lavoro, abbiamo a nostra disposizione una meravigliosa interfaccia con una funzione di trascinamento della selezione. jQuery offre enormi vantaggi agli sviluppatori desiderosi di utilizzare i vecchi metodi nei loro progetti.

Di conseguenza, non solo abbiamo le funzioni di gestione degli eventi, ma possiamo anche passare nuove variabili a blocchi trascinabili. Questo apre nuove possibilità per la creatività. La demo della lezione contiene solo uno schema di cosa si può fare con l'aiuto di tale codice.

Quindi controlla la documentazione di jQuery per l'utilizzo delle funzioni di libreria.