Łatwe przeciąganie i upuszczanie HTML5: jak tworzyć obiekty przeciągane w HTML5

TL; DR – Interfejs API przeciągania i upuszczania HTML5 umożliwia chwyć kursorem obiekt HTML i przeciągnij go w inne miejsce.

Co możesz przeciągać i upuszczać w HTML5?

HTML5 umożliwia przeciąganie dowolnego elementu, umożliwiając podniesienie go kursorem i przeciągnięcie w inne miejsce, które jest zdefiniowane jako element możliwy do upuszczenia. W poniższym przykładzie spróbuj przeciągnąć obraz do kwadratu:

Ta funkcjonalność upraszcza doświadczenie użytkownika, a nawet umożliwia tworzenie prostych gier online (np. Można przeciągać i upuszczać wirtualne szachy). Podczas przeciągania elementu jego przezroczysta replika przesuwa się wraz z kursorem, dopóki nie upuścisz go, puszczając przycisk myszy.

Z technicznego punktu widzenia Drag and Drop to JavaScript API dodany do HTML5. Dlatego ważne jest, aby mieć przynajmniej podstawową wiedzę o skryptach, aby móc pracować z tą funkcją.

Zdarzenia dotyczące przeciągania i upuszczania HTML5

W poniższej tabeli zobaczysz wszystkie zdarzenia związane z funkcją Przeciągnij i upuść:

Wydarzenie Wyjaśnienie
przeciągnij Kursor porusza się podczas przeciągania elementu
upuść Przeciąganie kończy się
dragstart Kursor podnosi element i zaczyna przeciągać
dragend Przycisk myszy zostaje zwolniony, upuszczając element
dragenter Kursor przechodzi do elementu docelowego
dragleave Kursor opuszcza element docelowy
przeciągnij Kursor przesuwa się nad elementem docelowym

Wyjaśnienie krok po kroku metody przeciągnij i upuść

Kodowanie przeciągnij i upuść HTML5 wydaje się na pierwszy rzut oka dość skomplikowane, ponieważ zawiera skrypty w JS. Jednak przestudiujmy każdą część procesu, aby ułatwić zrozumienie.

Elementy do przeciągania

Najpierw upewnij się, że element, który chcesz przeciągnąć, ma Zastosowano atrybut HTML5 draggable i ustawiono jego wartość na true:

Przykład

Przeciąganie

Następnie określ, co ma się stać po przeciągnięciu obiektu. Możesz to zrobić, wywołując moduł obsługi zdarzenia dla zdarzenia dragstart i definiujący funkcję do wykonania.

Wartość i typ danych przeciągniętych danych muszą być ustawione przez dataTransfer.setData() metoda:

Przykład

Upuszczanie

Przeciągalne dane HTML5 są określane przez dołączenie modułu obsługi zdarzenia do zdarzenia dragover.

Elementów i danych nie można domyślnie upuszczane w innych elementach. Oznacza to, że musisz zatrzymać elementy domyślne zachowanie przy użyciu metody event.preventDefault():

Przykład

Zdarzenie drop występuje, gdy upuszczane są przeciągane dane HTML5. Jest wywoływany przez moduł obsługi zdarzeń ondrop:

Kod końcowy: przykład

Zasadniczo kod jest potrzebny, aby móc wykonaj cztery kroki:

  • Zapobiegaj domyślnej akcji przeglądarki internetowej związanej z danymi, wywołując preventDefault()
  • Pobierz dane za pomocą metody dataTransfer.getData()
  • Umieść przeciągnięty element na elemencie upuszczania

Zobaczmy, jak to działa w przykład poniżej:

Przeciągnij i upuść HTML5: przydatne wskazówki

  • Możesz przeciągać różne typy elementów, w tym między innymi pliki, linki, obrazy i tekst.
  • Możesz także przeciągnąć wiele elementów jednocześnie. Jednak zaleca się, aby wszystkie były w tym samym formacie dla zachowania spójności.
  • Elementy formularza, które akceptują dane wejściowe użytkownika, mogą być domyślnie obszarami do upuszczania.

Obsługa przeglądarek

Chrome

46+

Edge

Wszystkie

Firefox

3.5+

IE

10+

Opera

Wszystkie

Safari

3.1+

Przeglądarka mobilna wsparcie

Chrome

Firefox

Wszystkie

Opera

Safari

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *