Najnowsze tutoriale tworzenie stron internetowych
 

ondrag Event

<Object Event

Przykład

Wykonać JavaScript, gdy <p> element jest przeciągany:

<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
Spróbuj sam "

Więcej "Try it Yourself" przykłady poniżej.


Definicja i Wykorzystanie

Ondrag zdarzenie gdy element lub zaznaczenie tekstu jest przeciągane.

Przeciągnij i upuść jest bardzo częstym elementem w HTML5. To jest, kiedy "grab" obiekt i przeciągnąć go w innym miejscu. Aby uzyskać więcej informacji, zobacz nasz poradnik HTML na HTML5 przeciągnij i upuść .

Uwaga: Aby element przyciągany, użyj globalnego HTML5 Draggable atrybut.

Wskazówka: Łącza i obrazy są przeciągane domyślnie i nie potrzebują draggable atrybut.

Istnieje wiele zdarzeń, które są używane i mogą występować w różnych etapach operacji przeciągania i upuszczania:

  • Wydarzenia opalane na Draggable cel (the source element) :
    • ondragstart - występuje, gdy użytkownik uruchamia przeciągnąć element
    • ondrag - występuje wtedy, gdy element jest przeciągane
    • ondragend - występuje, gdy użytkownik zakończy przeciągając element

  • Wydarzenia opalane na tarczy drop:
    • ondragenter - występuje, gdy przeciągany elementu przechodzi obiekt docelowy
    • onDragOver - następuje wtedy, gdy jest przeciągany przez element na obiekt docelowy
    • ondragleave - występuje, gdy przeciągany elementem pozostawia cel upuszczenia
    • ondrop - występuje wtedy, gdy element jest przeciągany spadła na obiekt docelowy

Uwaga: Podczas przeciągania elementu, zdarzenie ondrag odpala co 350 milisekund.


Wsparcie przeglądarka

Liczby w tabeli określ pierwszą wersję przeglądarki, która w pełni obsługuje zdarzenie.

Zdarzenie
ondrag 4.0 9.0 3.5 6.0 12,0

Składnia

W HTML:

W JavaScript:

object .ondrag=function(){ Spróbuj sam "

W JavaScript, używając addEventListener() metodę:

object .addEventListener("drag", myScript );
Spróbuj sam "

Uwaga: addEventListener() metoda ta nie jest obsługiwana w programie Internet Explorer 8 i wcześniejszych wersjach.


Szczegóły techniczne

bubbles: tak
opłata: tak
Typ wydarzenia: DragEvent
Obsługiwane znaczniki HTML: Wszystkie elementy HTML
DOM wersja: Level 3 Events

Przykłady

Więcej przykładów

Przykład

Demonstracja wszystkich możliwych zdarzeń przeciągnij i upuść:

<p draggable="true" id="dragtarget">Drag me!</p>

<div class="droptarget">Drop here!</div>

<script>
/* ----------------- Events fired on the drag target ----------------- */

document.addEventListener("dragstart", function(event) {
    // The dataTransfer.setData() method sets the data type and the value of the dragged data
    event.dataTransfer.setData("Text", event.target.id);

    // Output some text when starting to drag the p element
    document.getElementById("demo").innerHTML = "Started to drag the p element.";

    // Change the opacity of the draggable element
    event.target.style.opacity = "0.4";
});

// While dragging the p element, change the color of the output text
document.addEventListener("drag", function(event) {
    document.getElementById("demo").style.color = "red";
});

// Output some text when finished dragging the p element and reset the opacity
document.addEventListener("dragend", function(event) {
    document.getElementById("demo").innerHTML = "Finished dragging the p element.";
    event.target.style.opacity = "1";
});


/* ----------------- Events fired on the drop target ----------------- */

// When the draggable p element enters the droptarget, change the DIVS's border style
document.addEventListener("dragenter", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "3px dotted red";
    }
});

// By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element
document.addEventListener("dragover", function(event) {
    event.preventDefault();
});

// When the draggable p element leaves the droptarget, reset the DIVS's border style
document.addEventListener("dragleave", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "";
    }
});

/* On drop - Prevent the browser default handling of the data (default is open as link on drop)
Reset the color of the output text and DIV's border color
Get the dragged data with the dataTransfer.getData() method
The dragged data is the id of the dragged element ("drag1")
Append the dragged element into the drop element
*/
document.addEventListener("drop", function(event) {
    event.preventDefault();
    if ( event.target.className == "droptarget" ) {
        document.getElementById("demo").style.color = "";
        event.target.style.border = "";
        var data = event.dataTransfer.getData("Text");
        event.target.appendChild(document.getElementById(data));
    }
});
</script>
Spróbuj sam "

Podobne strony

HTML Tutorial: HTML5 Drag and Drop

HTML Reference: HTML przeciągany Atrybut


Event Object Reference Obiekt zdarzenia