Vissza a bloghoz

Fogd és vidd elemek létrehozása tiszta, vanilla JavaScripttel

Fogd és vidd elemek létrehozása tiszta, vanilla JavaScripttel

JavaScript az egyik legnépszerűbb programozási nyelv, amelyet több mint 24 keretrendszer és körülbelül 84 könyvtár támogat. Ez az egyetlen programozási nyelv, amelyet minden böngésző natívan támogat. Emellett a nyelv támogatja a dinamikus típusosságot, és kiválóan alkalmas renderelésre és animációra. A JavaScript segítségével interaktív viselkedést adhat hozzá a frontendhez, vezérelheti a backendet, webes és mobilalkalmazásokat hozhat létre, és még sok mást is tehet. Az a lehetőség, hogy bármely weboldalhoz effektusokat adhatunk és testreszabhatóvá tehetjük, a fejlesztők kedvencévé teszi ezt a nyelvet világszerte.

Ebben az útmutatóban végigvezetjük a drag and drop elemek létrehozásának lépésein tiszta Vanilla JavaScript használatával. Ezenkívül egy lépéssel tovább megyünk, és elkészítünk egy „Morning Scheduler” alkalmazást a HTML Drag and Drop API eseménykezelőinek használatával.

Előfeltételek

A tutorial követéséhez a következőkre van szüksége:

  • A JavaScript alapjai.
  • A HTML és CSS ismerete nagy előnyt jelent.

1. lépés: Új projekt létrehozása

Kezdje egy olyan konténer létrehozásával, amely két gyermekelemet tartalmaz. Az első gyermekelemet a húzáshoz, a másodikat pedig a behúzott elemek tárolására fogjuk használni.

Megjegyzés: Ebben a tutorialban a konténereket tárolóként fogjuk kezelni az összes behúzott elem megtartásához. Egyszerűen fogalmazva, az első gyermekelemből áthúzott összes elem a második gyermekelembe kerül.

Ezután használja a cd parancsot a könyvtár módosításához a drag-and-drop-demo  mappára:

2. lépés: Kezdeti beállítások

Ebben a tutorialban HTML-, CSS- és JavaScript-fájlokat fogunk létrehozni és összekapcsolni őket. Először nevezze el a fájlokat rendre index.html, styles.css, illetve scripts.js fájloknak.

Ezután adja hozzá a címet “My Morning Planner” formájában az index.html fájlban:

Ezután linkelje a CSS-t, és adja hozzá a JavaScriptet a HTML-hez:

Most létrehozunk egy kezdeti konténert, és hozzáadjuk azt az elemet, amelyet húzni és ejteni szeretnénk. Győződjön meg róla, hogy beállítja a draggable="true" attribútumot, és hozzáadja a húzni vagy ejteni kívánt elemek listáját.

Ezután adja hozzá a következő kódsorokat a <body> tagek közé:

Mentse el és zárja be az index.html fájlt. Ezután próbálja meg megnyitni az index.html fájlt a böngészőjében, és látni fogja, hogy megnyílik egy oldal:

Ezután formázzuk meg az index.html  fájlt CSS segítségével, hogy jól nézzen ki.

3. lépés: Formázás CSS segítségével

Ezután adjon stílusokat az összes olyan elemhez, amelyet az index.html fájlunkba foglaltunk:

Próbálja meg megnyitni az index.html fájlt a böngészőjében, és nézze meg az eredményt:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Bár befejeztük a strukturálást és hozzáadtuk a stílusokat, az elemek még mindig statikusak. Ez azt jelenti, hogy nem tudjuk mozgatni vagy görgetni az elemeket, amíg nem adunk hozzájuk dinamikus funkciókat. A következő lépésben bevezetjük a JavaScriptet és a dinamikus viselkedést.

4. lépés: A JavaScript bevezetése

Ebben a lépésben bevezetjük a JavaScriptet, és működővé tesszük az összes vonszolható elemet. A JS fájlban határozzuk meg a szükséges elemeket. Definiáljuk a draggable és containers elemeket az elemek vonszolásához és ejtéséhez.

Add hozzá ezt a két sor kódot a scripts.js fájlhoz:

Ezután állítsd be az összes eseményfigyelőt. Kezdd azzal, hogy hozzáadod a dragstart elemet első eseményfigyelőként, hogy add az osztálylistát. Hasonlóképpen, add hozzá a dragend elemet második eseményfigyelőként, hogy remove az osztálylistát.

Csatold a következő EventListeners elemeket a scripts.js fájlodban:

Ezután add hozzá a dragover EventListener eseményfigyelőt az elemek feletti lebegtetéshez és mozgatáshoz. Állítsd be az aktuális draggable elemet a querySelector segítségével, majd fűzd hozzá a vonszolható elemet az aktuális konténerhez:

Alapértelmezés szerint az elemen belüli ejtés le van tiltva. Használd az e.preventDefault metódust az engedélyezéséhez:

Ezután hozz létre egy elemet az egér pozíciójának meghatározásához. Kezdd egy getDragAfterElement függvény létrehozásával, amely két paramétert fogad. Az első egy container lesz, a második paraméter, az y pedig az egér függőleges pozíciójáért felel. Most használd a querySelectorAll függvényt a vonszolható elemek lekéréséhez. Definiálj egy draggableElements változót a konténerben lévő összes vonszolható elemhez:

Ezután hívj meg egy reduce függvényt, amely végigmegy a vonszolható elemek listáján, és meghatározza az egérkurzor utáni egyetlen elemet. Ezután return a reduce függvényből, hozzáadva az első elemet mint closest és a másodikat mint child. Emellett számítsd ki az offset értékét, és adj hozzá feltételeket.

Adja hozzá a következő kódsorokat a scripts.js fájlba:

Az utolsó részben feltételeket állítunk be, és ellenőrizzük a AfterElements. Ellenőrizze az AfterElements elemet az if-else feltételek használatával, és ha az értéke null, fűzzön hozzá egy gyermekelemet a lista végéhez az appendChild használatával. Különben adja hozzá a draggable és afterElement elemeket paraméterként az insertBefore függvényben.

Illessze be ezt a scripts.js fájlba:

Most már elvégeztük a szükséges beállításokat. Nyissa meg a böngészőjét, és futtassa az index.html fájlt a böngészőjében. Látni fogja a „My Morning Scheduler” oldalt a fogd és vidd lehetőségekkel. A középen lévő fehér vonal hídként szolgál a már elvégzett és a még elvégzendő feladatok megkülönböztetésére:

Összegzés

A fogd és vidd (Drag and Drop) funkció kiváló lehetőség a modern weboldalakon. Ebben az útmutatóban néhány eseménykezelőt használtunk, hogy a bemutató könnyen érthető legyen a kezdők számára. Összesen nyolc eseménykezelő létezik, és arra bátorítjuk, hogy használja őket a fejlődése során. Ha már magabiztosan használja az ebben az útmutatóban szereplő függvényeket és kódokat, elmerülhet az olyan JavaScript témakörökben, mint a jQuery, és elkezdheti a felfedezést. Megpróbálhat létrehozni egy To-Do (teendő) alkalmazást, egy heti haladási naplót a JavaScript dátum- és időfunkciók segítségével, vagy más alkalmazásokat az imént tanult koncepciók alapján.

Ha szeretne többet megtudni a JavaScriptről és a webfejlesztési témákról, tekintse meg ezeket a forrásokat a blogunkról:

Kellemes számítógépezést!

author

Shreyas Patil

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.