Torna al blog

Creazione di elementi Drag and Drop con JavaScript puro

Creazione di elementi Drag and Drop con JavaScript puro

JavaScript è uno dei linguaggi di programmazione più popolari, potenziato da oltre 24 framework e circa 84 librerie. È l'unico linguaggio di programmazione supportato intrinsecamente da tutti i browser. Inoltre, il linguaggio supporta la tipizzazione dinamica ed è una scelta eccellente per il rendering e l'animazione. Puoi sfruttare JavaScript per aggiungere comportamenti interattivi nel front-end, controllare il back-end, creare applicazioni web e mobili e altro ancora. La possibilità di aggiungere effetti a qualsiasi sito web e renderlo personalizzabile rende questo linguaggio uno dei preferiti dai programmatori di tutto il mondo.

In questa guida, ti guideremo attraverso i passaggi per creare elementi drag and drop utilizzando puro Vanilla JavaScript. Inoltre, faremo un passo in avanti e creeremo un'app "Morning Scheduler" utilizzando i gestori di eventi dell'API Drag and Drop di HTML.

Prerequisiti

Per seguire questo tutorial, è necessario avere:

  • Conoscenze di base di JavaScript.
  • Una conoscenza di HTML e CSS rappresenterà un grande vantaggio.

Passo 1: Creare un nuovo progetto

Inizia creando un contenitore con due elementi figli. Useremo il primo elemento figlio da trascinare e il secondo elemento figlio per memorizzare gli elementi trascinati.

Nota: In questo tutorial, tratteremo i contenitori como un archivio per conservare tutti gli elementi trascinati. In parole povere, tutti gli elementi trascinati dal primo figlio verranno rilasciati nel secondo figlio.

Successivamente, usa il comando cd per cambiare la directory nella cartella drag-and-drop-demo :

Passo 2: Configurazione iniziale

In questo tutorial, creeremo i file HTML, CSS e JavaScript e li collegheremo. Per prima cosa, nomina i file come index.html, styles.css, e scripts.js rispettivamente.

Successivamente, aggiungi il titolo “My Morning Planner” nel file index.html :

Successivamente, collega il CSS e aggiungi JavaScript all'HTML:

Ora creeremo un contenitore iniziale e aggiungeremo l'elemento che vogliamo trascinare e rilasciare. Assicurati di impostare l'attributo draggable="true", e aggiungi l'elenco degli elementi che desideri trascinare o rilasciare.

Successivamente, aggiungi le seguenti righe di codice nei tag <body>:

Salva e chiudi il file index.html. Successivamente, prova ad aprire il file index.html nel tuo browser e vedrai aprirsi una pagina:

Successivamente, definiamo lo stile del nostro file index.html  usando i CSS per renderlo presentabile.

Passo 3: Definizione dello stile tramite CSS

Successivamente, aggiungi gli stili a tutti gli elementi che abbiamo incluso nel nostro file index.html file:

Prova ad aprire il file index.html nel tuo browser e guarda il risultato:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Anche se abbiamo completato la strutturazione e aggiunto gli stili, gli elementi sono ancora statici. Ciò significa che non possiamo spostare o scorrere gli elementi finché non aggiungiamo loro funzionalità dinamiche. Nel prossimo passo, daremo il benvenuto a JavaScript e ai comportamenti dinamici.

Passo 4: Introduzione a JavaScript

In questo passaggio, introdurremo JavaScript e renderemo funzionali tutti gli elementi di trascinamento. Nel file JS, imposta gli elementi di cui avremo bisogno. Definiamo draggable e containers rispettivamente per trascinare e rilasciare gli elementi.

Aggiungi le due righe di codice nel file scripts.js:

Successivamente, imposta tutti i listener di eventi. Inizia aggiungendo l'elemento dragstart come primo listener di eventi per aggiungere la lista delle classi. Allo stesso modo, aggiungi l'elemento dragend come secondo listener di eventi per rimuovere la lista delle classi.

Collega i seguenti EventListeners nel tuo file scripts.js:

Successivamente, aggiungi l' dragover EventListener per il passaggio del mouse e lo spostamento dei nostri elementi. Imposta l'elemento draggable corrente utilizzando querySelector e poi aggiungi l'elemento trascinabile al contenitore corrente:

Per impostazione predefinita, il rilascio all'interno di un elemento è disabilitato. Usa e.preventDefault per abilitarlo:

Successivamente, crea un elemento per determinare il posizionamento del mouse. Inizia creando una funzione getDragAfterElement che accetterà due parametri. Il primo sarà un container e il secondo parametro y si occuperà della posizione verticale del mouse. Ora, usa la funzione querySelectorAll per ottenere i nostri elementi trascinabili. Definisci un draggableElements per tutti gli elementi trascinabili all'interno del contenitore:

Successivamente, chiama una funzione reduce che eseguirà un ciclo attraverso l'elenco degli elementi trascinabili e specificherà anche il singolo elemento dopo il cursore del mouse. Successivamente, restituisci la funzione reduce aggiungendo il primo elemento come closest e il secondo come child. Inoltre, equipara l' offset e aggiungi le condizioni.

Aggiungi le seguenti righe di codice nel scripts.js file:

In quest'ultima parte, imposteremo le condizioni e verificheremo gli AfterElements. Controlla gli AfterElements utilizzando le if-else condizioni, e se è impostato su null, aggiungi un elemento figlio alla fine dell'elenco utilizzando appendChild. Altrimenti, aggiungi l'elemento draggable e afterElement come parametri nella insertBefore funzione.

Includi questo nel scripts.js file:

Ora abbiamo completato la configurazione necessaria. Apri il browser ed esegui index.html nel tuo browser. Vedrai la pagina “My Morning Scheduler” con opzioni di trascinamento della selezione. La linea bianca nel mezzo funge da ponte per differenziare le attività già completate da quelle ancora da svolgere:

Conclusione

Il Drag and Drop è un'ottima opzione da utilizzare nei siti web moderni. In questa guida abbiamo utilizzato una manciata di gestori di eventi per rendere il tutorial semplice per i principianti. Ci sono otto gestori di eventi in totale e ti incoraggiamo a usarli man mano che avanzi. Una volta che avrai preso confidenza con le funzioni e il codice utilizzati in questo tutorial, potrai approfondire argomenti JavaScript come jQuery e iniziare a esplorare. Puoi anche provare a creare un'app To-Do, un tracker dei progressi settimanali utilizzando le funzionalità di data e ora di JavaScript, e altre applicazioni utilizzando i concetti che hai appena appreso.

Per saperne di più su JavaScript e sullo sviluppo web, consulta queste risorse dal nostro blog:

Buon computing!

author

Shreyas Patil

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.