Beispiel
Führen Sie einen JavaScript , wenn ein <p> Element gezogen wird:
<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
Versuch es selber " Mehr "Try it Yourself" Sie "Try it Yourself" Beispiele unten.
Definition und Verwendung
Das ondrag Ereignis tritt auf, wenn ein Element oder eine Textauswahl gezogen wird.
Drag & Drop ist ein sehr häufiges Merkmal in HTML5. Es ist , wenn Sie "grab" ein Objekt und es an einen anderen Ort ziehen. Weitere Informationen finden Sie in unserem HTML - Tutorial auf HTML5 Drag and Drop .
Hinweis: Um ein Element ziehbar zu machen, verwenden Sie das globale HTML5 ziehbar Attribut.
Tipp: Links und Bilder sind ziehbar standardmäßig und nicht die Notwendigkeit draggable Attribut.
Es gibt viele Ereignisse, die verwendet werden, und können auftreten, in den verschiedenen Phasen eines Drag & Drop-Operation:
- Ereignisse ausgelöst auf dem ziehbar Ziel (the source element) :
- onDragStart - tritt auf, wenn der Benutzer beginnt , ein Element zu ziehen
- ondrag - tritt auf, wenn ein Element in die Länge gezogen wird,
- ondragend - tritt auf, wenn der Benutzer fertig ist das Element ziehen
- Event auf dem Drop - Ziel abgefeuert:
- OnDragEnter - tritt auf, wenn das gezogene Element der Zielabfall eintritt
- OnDragOver - tritt auf, wenn das gezogene Element über das Drop - Ziel ist
- OnDragLeave - tritt auf, wenn das gezogene Element das Drop - Ziel verlässt
- ondrop - tritt auf, wenn das gezogene Element auf dem Drop - Ziel fallen gelassen wird
Hinweis: Während ein Element ziehen, das ondrag Ereignis feuert alle 350 Millisekunden.
Browser-Unterstützung
Die Zahlen in der Tabelle geben Sie die erste Browser-Version, die das Ereignis vollständig unterstützt.
Event | |||||
---|---|---|---|---|---|
ondrag | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Syntax
In HTML:
In JavaScript:
object .ondrag=function(){ Versuch es selber "
In JavaScript mit den addEventListener() Methode:
object .addEventListener("drag", myScript );
Versuch es selber " Hinweis: Die addEventListener() Methode wird nicht unterstützt in Internet Explorer 8 und früheren Versionen.
Technische Details
Blasen: | Ja |
---|---|
Es fällt eine Pauschale: | Ja |
Event-Typ: | Dragevent |
Unterstützte HTML-Tags: | Alle HTML-Elemente |
DOM Version: | Level 3 Veranstaltungen |
Mehr Beispiele
Beispiel
Eine Demonstration aller möglichen Drag-and-Drop-Ereignisse:
<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>
Versuch es selber " Verwandte Seiten
HTML Tutorial: HTML5 Drag and Drop
HTML Referenz: HTML ziehbar Attribut
Ereignisobjekt