Natrag na blog

Stvaranje 'povuci i ispusti' elemenata pomoću čistog, vanilla JavaScripta

Stvaranje 'povuci i ispusti' elemenata pomoću čistog, vanilla JavaScripta

JavaScript je jedan od najpopularnijih programskih jezika, osnažen s više od 24 radna okvira i oko 84 biblioteke. To je jedini programski jezik koji svi preglednici izvorno podržavaju. Osim toga, ovaj jezik podržava dinamičko tipkanje i izvrstan je izbor za renderiranje i animaciju. Možete iskoristiti JavaScript za dodavanje interaktivnog ponašanja na sučelju (front-end), upravljanje pozadinom (back-end), stvaranje web i mobilnih aplikacija i još mnogo toga. Mogućnost dodavanja efekata bilo kojoj web-stranici i njezina prilagodba čini ovaj jezik omiljenim među razvojnim programerima diljem svijeta.

U ovom vodiču ćemo vas provesti kroz korake stvaranja elemenata za povlačenje i ispuštanje (drag and drop) koristeći čisti Vanilla JavaScript. Osim toga, napravit ćemo korak dalje i izgraditi aplikaciju „Morning Scheduler” koristeći HTML Drag and Drop API rukovatelje događajima.

Preduvjeti

Kako biste pratili ovaj vodič, morate imati:

  • Osnove JavaScripta.
  • Uvid u HTML i CSS bit će velika prednost.

Korak 1: Stvorite novi projekt

Započnite stvaranjem spremnika s dva podređena elementa. Prvi podređeni element koristit ćemo za povlačenje, a drugi podređeni element za pohranu povučenih elemenata.

Napomena: U ovom vodiču spremnike ćemo tretirati kao skladište za čuvanje svih povučenih elemenata. Jednostavno rečeno, svi elementi povučeni iz prvog podređenog elementa bit će ispušteni u drugi podređeni element.

Zatim upotrijebite cd naredbu za promjenu direktorija u mapu drag-and-drop-demo  mapu:

Korak 2: Početno postavljanje

In this tutorial, we will create HTML, CSS, and JavaScript files and connect them. First, name the files name as index.html, styles.css, and scripts.js files respectively.

Zatim dodajte naslov “My Morning Planner” u datoteku index.html :

Zatim povežite CSS i dodajte JavaScript u HTML:

Sada ćemo stvoriti početni spremnik i dodati element koji želimo povući i ispustiti. Svakako postavite atribut draggable="true", i dodajte popis stavki koje želite povući ili ispustiti.

Zatim dodajte sljedeće retke koda u <body> oznake:

Spremite i zatvorite index.html datoteku. Nakon toga pokušajte otvoriti index.html datoteku u svom pregledniku i vidjet ćete kako se otvara stranica:

Zatim stilizirajmo našu index.html  pomoću CSS-a kako bi izgledala prezentabilno.

Korak 3: Stiliziranje pomoću CSS-a

Zatim dodajte stilove na sve elemente koje smo uključili u našu index.html datoteku:

Pokušajte otvoriti index.html datoteku u svom pregledniku i pogledajte rezultat:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Iako smo dovršili strukturiranje i dodali stilove, elementi su i dalje statični. To znači da ne možemo pomicati niti skrolati elemente dok im ne dodamo dinamičke značajke. U sljedećem koraku uvest ćemo JavaScript i dinamičko ponašanje.

Korak 4: Predstavljanje JavaScripta

U ovom koraku uvest ćemo JavaScript i učiniti sve elemente za povlačenje funkcionalnima. U JS datoteci postavite elemente koji će nam trebati. Definirajmo draggable i containers za povlačenje i ispuštanje elemenata.

Dodajte dva retka koda u scripts.js datoteku:

Zatim postavite sve slušatelje događaja. Započnite s dodavanjem dragstart elementa kao prvog slušatelja događaja za add popis klasa. Slično tome, dodajte dragend element kao drugog slušatelja događaja za remove popis klasa.

Priložite sljedeće EventListeners u svoju scripts.js datoteku:

Zatim dodajte dragover EventListener za lebdenje i pomicanje naših elemenata uokolo. Postavite trenutni draggable element pomoću querySelector a zatim dodajte povlačivi element u trenutni spremnik:

Prema zadanim postavkama, ispuštanje unutar elementa je onemogućeno. Koristite e.preventDefault kako biste ga omogućili:

Zatim stvorite element za određivanje položaja miša. Započnite stvaranjem funkcije getDragAfterElement koja će primati dva parametra. Prvi će biti container a drugi parametar y će se brinuti za vertikalni položaj miša. Sada upotrijebite funkciju querySelectorAll kako biste dobili naše povlačive elemente. Definirajte draggableElements za sve povlačive elemente unutar spremnika:

Zatim pozovite reduce funkciju koja će prolaziti kroz popis povlačivih elemenata i također odrediti pojedinačni element nakon pokazivača miša. Zatim, vratite funkciju reduce dodavanjem prvog elementa kao closest a drugog kao child. Također, izjednačite offset i dodajte uvjete.

Dodajte sljedeće linije koda u scripts.js datoteku:

// … U posljednjem dijelu postavit ćemo uvjete i provjeriti AfterElements. Provjerite AfterElements koristeći if-else uvjete, i ako je postavljen na null, dodajte podređeni element na kraj popisa koristeći appendChild. U suprotnom, dodajte element draggable i afterElement kao parametre u insertBefore funkciji.

Uključite ovo u scripts.js datoteku:

Sada imamo dovršeno potrebno postavljanje. Otvorite svoj preglednik i pokrenite index.html u svom pregledniku. Vidjet ćete stranicu “My Morning Scheduler” s opcijama za povlačenje i ispuštanje. Bijela linija u sredini služi kao most za razlikovanje zadataka koji su već obavljeni od onih koje tek treba obaviti:

Zaključak

Povlačenje i ispuštanje izvrsna je opcija za korištenje na modernim web stranicama. U ovom smo vodiču koristili nekoliko rukovatelja događajima kako bismo tutorial učinili jednostavnim za početnike. Ukupno postoji osam rukovatelja događajima i potičemo vas da ih koristite kako napredujete. Kada se osjećate ugodno koristeći funkcije i kod korišten u ovom vodiču, možete dublje zaroniti u JavaScript teme poput jQuery i početi istraživati. Također možete pokušati izraditi To-Do aplikaciju, tjedni praćenje napretka koristeći JavaScript značajke datuma i vremena, i druge aplikacije koristeći koncepte koje ste upravo naučili.

Kako biste saznali više o JavaScriptu i temama razvoja weba, pogledajte ove resurse s našeg bloga:

Sretno programiranje!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.