Zpět na blog

Vytváření prvků Drag and Drop pomocí čistého, vanilla JavaScriptu

Vytváření prvků Drag and Drop pomocí čistého, vanilla JavaScriptu

JavaScript je jedním z nejpopulárnějších programovacích jazyků, který disponuje více než 24 frameworky a přibližně 84 knihovnami. Je to jediný programovací jazyk, který je nativně podporován všemi prohlížeči. Kromě toho tento jazyk podporuje dynamické typování a skvěle se hodí pro vykreslování a animace. JavaScript můžete využít k přidání interaktivního chování na front-endu, řízení back-endu, vytváření webových a mobilních aplikací a k mnoha dalším účelům. Možnost přidávat efekty na jakýkoli web a přizpůsobovat jej činí z tohoto jazyka oblíbence mezi vývojáři po celém světě.

V tomto průvodci budeme vás provede kroky vytvoření prvků drag and drop pomocí čistého Vanilla JavaScriptu. Navíc postoupíme o krok dále a vytvoříme aplikaci „Morning Scheduler“ pomocí HTML Drag and Drop API obslužných rutin událostí.

Požadavky

Chcete-li sledovat tento návod, musíte mít:

  • Základy JavaScriptu.
  • Znalost HTML a CSS bude velkou výhodou.

Krok 1: Vytvořte nový projekt

Začněte vytvořením kontejneru se dvěma podřízenými prvky. První podřízený prvek použijeme k přetahování a druhý podřízený prvek k ukládání přetažených prvků.

Poznámka: V tomto návodu budeme kontejnery považovat za úložiště pro uchování všech přetažených prvků. Zjednodušeně řečeno, všechny prvky přetažené z prvního potomka budou vhozeny do druhého potomka.

Dále použijte cd příkaz pro změnu adresáře na drag-and-drop-demo  složku:

Krok 2: Počáteční nastavení

V tomto návodu vytvoříme soubory HTML, CSS a JavaScript a propojíme je. Nejprve pojmenujte soubory jako index.html, styles.css, a scripts.js v tomto pořadí.

Dále přidejte název jako “Můj ranní plánovač” v index.html souboru:

Dále připojte CSS a přidejte JavaScript do HTML:

Nyní vytvoříme výchozí kontejner a přidáme prvek, který chceme přetahovat. Nezapomeňte nastavit atribut draggable="true", a přidejte seznam položek, které chcete přetáhnout nebo pustit.

Dále přidejte následující řádky kódu do <body> značek:

Uložte a zavřete index.html soubor. Poté zkuste otevřít index.html soubor ve svém prohlížeči a uvidíte, jak se otevře stránka:

Dále nastylujeme náš index.html  pomocí CSS, aby vypadal reprezentativně.

Krok 3: Stylování pomocí CSS

Dále přidejte styly ke všem prvkům, které jsme zahrnuli do našeho index.html souboru:

Zkuste otevřít index.html soubor ve vašem prohlížeči a podívejte se na výstup:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Přestože jsme dokončili strukturování a přidali styly, prvky jsou stále statické. To znamená, že nemůžeme prvky přesouvat ani jimi rolovat, dokud k nim nepřidáme dynamické funkce. V dalším kroku přivítáme JavaScript a dynamické chování.

Krok 4: Představení JavaScriptu

V tomto kroku si představíme JavaScript a zprovozníme všechny přetahovatelné prvky. V JS souboru nastavte prvky, které budeme potřebovat. Definujme draggable a containers pro přetahování a pouštění prvků.

Přidejte tyto dva řádky kódu do scripts.js souboru:

Dále nastavte všechny posluchače událostí. Začněte přidáním dragstart prvku jako prvního posluchače události pro add do seznamu tříd. Podobně přidejte dragend prvku jako druhého posluchače události pro remove ze seznamu tříd.

Připojte následující EventListeners ve svém scripts.js souboru:

Dále přidejte dragover EventListener pro přejíždění a přesouvání našich prvků. Nastavte aktuální draggable prvek pomocí querySelector a poté připojte přetažitelný prvek k aktuálnímu kontejneru:

Ve výchozím nastavení je upuštění uvnitř prvku zakázáno. Použijte e.preventDefault pro jeho povolení:

Dále vytvořte prvek pro určení pozice myši. Začněte vytvořením funkce getDragAfterElement která bude přijímat dva parametry. Prvním bude container a druhý parametr y se postará o pozici myši na šířku. Nyní použijte querySelectorAll funkci k získání našich přetahovatelných prvků. Definujte draggableElements pro všechny přetahovatelné prvky uvnitř kontejneru:

Dále zavolejte reduce funkci, která projde seznam přetahovatelných prvků a také určí konkrétní prvek za kurzorem myši. Dále return funkci reduce přidáním prvního prvku jako closest a druhý jako child. Také porovnejte offset a přidejte podmínky.

Přidejte následující řádky kódu do scripts.js souboru:

V poslední části nastavíme podmínky a zkontrolujeme AfterElements. Zkontrolujte AfterElements pomocí if-else podmínek, a pokud je nastaven na null, připojte potomka na konec seznamu pomocí appendChild. V opačném případě přidejte prvek draggable a afterElement jako parametry ve insertBefore funkci.

Zahrňte to do scripts.js souboru:

Nyní máme hotové potřebné nastavení. Otevřete prohlížeč a spusťte index.html ve svém prohlížeči. Uvidíte stránku „Můj ranní plánovač“ s možnostmi drag and drop. Bílá čára uprostřed funguje jako předěl pro rozlišení mezi úkoly, které jsou již hotové, a těmi, které je ještě třeba udělat:

Závěr

Drag and Drop je skvělá možnost pro použití na moderních webových stránkách. V tomto návodu jsme použili několik obsluh událostí, aby byl průvodce pro začátečníky snadný. Celkem existuje osm obsluh událostí a doporučujeme vám je používat, jak se budete zdokonalovat. Jakmile se s funkcemi a kódem použitým v tomto návodu sžijete, můžete se ponořit hlouběji do témat JavaScriptu, jako je jQuery a začít objevovat. Můžete si také zkusit vytvořit To-Do aplikaci, týdenní sledovač pokroku pomocí funkcí JavaScriptu pro datum a čas, a dalších aplikací využívajících koncepty, které jste se právě naučili.

Chcete-li se dozvědět více o JavaScriptu a tématech vývoje webu, podívejte se na tyto zdroje z našeho blogu:

Příjemné programování!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.