Επιστροφή στο blog

Δημιουργία στοιχείων Drag and Drop με καθαρή, Vanilla JavaScript

Δημιουργία στοιχείων Drag and Drop με καθαρή, Vanilla JavaScript

JavaScript είναι μία από τις πιο δημοφιλείς γλώσσες προγραμματισμού, ενισχυμένη με περισσότερα από 24 frameworks και περίπου 84 βιβλιοθήκες. Είναι η μόνη γλώσσα προγραμματισμού που υποστηρίζεται εγγενώς από όλα τα προγράμματα περιήγησης. Επιπλέον, η γλώσσα υποστηρίζει δυναμική πληκτρολόγηση και είναι εξαιρετική για rendering και animation. Μπορείτε να αξιοποιήσετε τη JavaScript για να προσθέσετε διαδραστική συμπεριφορά στο front-end, να ελέγξετε το back-end, να δημιουργήσετε εφαρμογές ιστού και κινητών, και πολλά άλλα. Η δυνατότητα προσθήκης εφέ σε οποιονδήποτε ιστότοπο και η προσαρμογή του καθιστούν τη γλώσσα αγαπημένη μεταξύ των προγραμματιστών παγκοσμίως.

Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα δημιουργίας στοιχείων drag and drop χρησιμοποιώντας καθαρή Vanilla JavaScript. Επιπλέον, θα προχωρήσουμε ένα βήμα παραπέρα και θα δημιουργήσουμε μια εφαρμογή «Morning Scheduler» χρησιμοποιώντας το HTML Drag and Drop API event handlers.

Προαπαιτούμενα

Για να παρακολουθήσετε αυτό το σεμινάριο, πρέπει να έχετε:

  • Βασικές γνώσεις JavaScript.
  • Μια κατανόηση των HTML και CSS θα αποτελέσει μεγάλο πλεονέκτημα.

Βήμα 1: Δημιουργία νέου έργου

Ξεκινήστε δημιουργώντας ένα container με δύο θυγατρικά στοιχεία. Θα χρησιμοποιήσουμε το πρώτο θυγατρικό στοιχείο για σύρσιμο και το δεύτερο θυγατρικό στοιχείο για την αποθήκευση των στοιχείων που σύρθηκαν.

Σημείωση: Σε αυτό το σεμινάριο, θα αντιμετωπίσουμε τα containers ως αποθηκευτικό χώρο για να διατηρούμε όλα τα στοιχεία που σύρονται. Με απλά λόγια, όλα τα στοιχεία που σύρονται από το πρώτο θυγατρικό στοιχείο θα εναποτίθενται στο δεύτερο.

Next, use the cd command to change the directory to the drag-and-drop-demo  folder:

Βήμα 2: Αρχική ρύθμιση

Σε αυτό το σεμινάριο, θα δημιουργήσουμε αρχεία HTML, CSS και JavaScript και θα τα συνδέσουμε. Αρχικά, ονομάστε τα αρχεία ως index.html, styles.css, και scripts.js αντίστοιχα.

Στη συνέχεια, προσθέστε τον τίτλο ως «My Morning Planner» στο αρχείο index.html file:

Στη συνέχεια, συνδέστε το CSS και προσθέστε τη JavaScript στο HTML:

Τώρα, θα δημιουργήσουμε ένα αρχικό κοντέινερ και θα προσθέσουμε το στοιχείο που θέλουμε να σύρουμε και να αποθέσουμε. Βεβαιωθείτε ότι έχετε ορίσει το χαρακτηριστικό draggable="true", και προσθέστε τη λίστα των στοιχείων που θέλετε να σύρετε ή να αποθέσετε.

Next, add the following lines of code in the <body> tags:

Save and close the index.html file. After that, try opening the index.html file in your browser and you will see a page opening up:

Next, let’s style our index.html  using CSS and make it look presentable.

Step 3: Styling using CSS

Next, add styles on all the elements we’ve included in our index.html file:

Try opening the index.html file in your browser and see the output:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Though we have completed structuring and added styles, the elements are still static. That means, we cannot move or scroll elements until we add dynamic features to them. In the next step, we’ll welcome JavaScript and dynamic behaviors.

Step 4: Introducing JavaScript

Σε αυτό το βήμα, θα εισαγάγουμε τη JavaScript και θα κάνουμε όλα τα στοιχεία μεταφοράς λειτουργικά. Στο αρχείο JS, ορίστε τα στοιχεία που θα χρειαστούμε. Ας ορίσουμε draggable και containers για τη μεταφορά και απόθεση στοιχείων αντίστοιχα.

Προσθέστε τις δύο γραμμές κώδικα στο scripts.js αρχείο:

Στη συνέχεια, ρυθμίστε όλους τους event listeners. Ξεκινήστε προσθέτοντας το στοιχείο dragstart ως τον πρώτο event listener για να add τη λίστα κλάσεων. Παρομοίως, προσθέστε το στοιχείο dragend ως τον δεύτερο event listener για να remove τη λίστα κλάσεων.

Επισυνάψτε τους ακόλουθους EventListeners στο scripts.js αρχείο σας:

Στη συνέχεια, προσθέστε τον dragover EventListener για την αιώρηση και τη μετακίνηση των στοιχείων μας. Ορίστε το τρέχον στοιχείο draggable χρησιμοποιώντας το querySelector και στη συνέχεια προσαρτήστε το μεταφερόμενο στοιχείο στον τρέχοντα περιέκτη:

Από προεπιλογή, η απόθεση μέσα σε ένα στοιχείο είναι απενεργοποιημένη. Χρησιμοποιήστε το e.preventDefault για να την ενεργοποιήσετε:

Στη συνέχεια, δημιουργήστε ένα στοιχείο για να προσδιορίσετε τη θέση του ποντικιού. Ξεκινήστε δημιουργώντας μια συνάρτηση getDragAfterElement η οποία θα δέχεται δύο παραμέτρους. Η πρώτη θα είναι ένας container και η δεύτερη παράμετρος y θα αναλάβει την κατακόρυφη θέση του ποντικιού. Τώρα, χρησιμοποιήστε τη συνάρτηση querySelectorAll για να λάβετε τα μεταφερόμενα στοιχεία μας. Ορίστε μια μεταβλητή draggableElements για όλα τα μεταφερόμενα στοιχεία μέσα στον περιέκτη:

Στη συνέχεια, καλέστε μια συνάρτηση reduce η οποία θα επαναλαμβάνει τη λίστα των μεταφερόμενων στοιχείων και επίσης θα προσδιορίζει το μοναδικό στοιχείο μετά τον κέρσορα του ποντικιού. Στη συνέχεια, return τη συνάρτηση reduce προσθέτοντας το πρώτο στοιχείο ως closest και το δεύτερο ως child. Επίσης, εξισώστε το offset και προσθέστε συνθήκες.

Προσθέστε τις ακόλουθες γραμμές κώδικα στο scripts.js αρχείο:

In the last part, we will set conditions and check the AfterElements. Check the AfterElements using if-else conditions, and if it is set to null, append a child at the end of the list using appendChild. Else, add the element draggable and afterElement as parameters in the insertBefore function.

Include this in the scripts.js file:

Τώρα έχουμε κάνει την απαραίτητη προετοιμασία. Ανοίξτε το πρόγραμμα περιήγησής σας και εκτελέστε το index.html στο πρόγραμμα περιήγησής σας. Θα δείτε τη σελίδα «My Morning Scheduler» με επιλογές για μεταφορά και απόθεση. Η λευκή γραμμή στη μέση λειτουργεί ως γέφυρα για τη διάκριση μεταξύ των εργασιών που έχουν ήδη ολοκληρωθεί και εκείνων που δεν έχουν γίνει ακόμη:

Συμπέρασμα

Η μεταφορά και απόθεση (Drag and Drop) είναι μια εξαιρετική επιλογή για χρήση σε σύγχρονους ιστότοπους. Σε αυτόν τον οδηγό, χρησιμοποιήσαμε μερικούς χειριστές συμβάντων για να κάνουμε το σεμινάριο εύκολο για αρχάριους. Υπάρχουν συνολικά οκτώ χειριστές συμβάντων και σας ενθαρρύνουμε να τους χρησιμοποιήσετε καθώς προχωράτε. Μόλις νιώσετε άνετα με τη χρήση των συναρτήσεων και του κώδικα που χρησιμοποιούνται σε αυτό το σεμινάριο, μπορείτε να εμβαθύνετε σε θέματα της JavaScript όπως το jQuery και να ξεκινήσετε την εξερεύνηση. Μπορείτε επίσης να δοκιμάσετε να δημιουργήσετε μια εφαρμογή To-Do, έναν εβδομαδιαίο ανιχνευτή προόδου χρησιμοποιώντας δυνατότητες ημερομηνίας και ώρας της JavaScript, και άλλες εφαρμογές χρησιμοποιώντας τις έννοιες που μόλις μάθατε.

Για να μάθετε περισσότερα σχετικά με τη JavaScript και θέματα ανάπτυξης ιστού, δείτε αυτούς τους πόρους από το ιστολόγιό μας:

Καλή υπολογιστική!

author

Shreyas Patil

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.