Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

DataTransfer: dropEffect-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Die DataTransfer.dropEffect-Eigenschaft steuert das Feedback (typischerweise visuell), das der Benutzer während einer Drag-and-Drop-Operation erhält. Es wird beeinflussen, welcher Cursor während des Ziehens angezeigt wird. Zum Beispiel kann der Cursor des Browsers anzeigen, welche Art von Operation stattfindet, wenn der Benutzer über ein Ziel-Drop-Element schwebt.

Wenn das DataTransfer-Objekt erstellt wird, wird dropEffect auf einen String-Wert gesetzt. Beim Abrufen gibt es seinen aktuellen Wert zurück. Beim Setzen wird der Eigenschaftswert auf den neuen Wert festgelegt, wenn dieser einer der unten aufgeführten Werte ist; andere Werte werden ignoriert.

Für die dragenter und dragover Ereignisse wird dropEffect basierend darauf initialisiert, welche Aktion der Benutzer anfordert. Wie dies bestimmt wird, ist plattformspezifisch, aber typischerweise kann der Benutzer Modifikatortasten wie die Alt-Taste drücken, um die gewünschte Aktion anzupassen. Innerhalb von Ereignishandlern für die dragenter und dragover Ereignisse sollte dropEffect geändert werden, wenn eine andere Aktion als die vom Benutzer angeforderte gewünscht wird.

Für die drop und dragend Ereignisse wird dropEffect auf die gewünschte Aktion gesetzt, die der Wert war, den dropEffect nach dem letzten dragenter oder dragover Ereignis hatte. Bei einem dragend Ereignis sollte beispielsweise, wenn der gewünschte dropEffect "move" ist, die zu ziehenden Daten aus der Quelle entfernt werden.

Wert

Ein String, der den Effekt der Ziehoperation darstellt. Die möglichen Werte sind:

copy

Eine Kopie des Quellobjekts wird am neuen Ort erstellt.

move

Ein Objekt wird an einen neuen Ort verschoben.

Eine Verknüpfung zum Quellobjekt am neuen Ort wird erstellt.

none

Das Objekt kann nicht fallen gelassen werden.

Das Zuweisen eines anderen Wertes zu dropEffect hat keine Wirkung, und der alte Wert bleibt erhalten.

Beispiel

Dieses Beispiel zeigt die Verwendung der Eigenschaften dropEffect und effectAllowed.

HTML

html
<div> <p id="source" draggable="true"> Select this element, drag it to the Drop Zone and then release the selection to move the element. </p> </div> <div id="target">Drop Zone</div> 

CSS

css
div { margin: 0em; padding: 2em; } #source { color: blue; border: 1px solid black; } #target { border: 1px solid black; } 

JavaScript

js
const source = document.getElementById("source"); const target = document.getElementById("target"); source.addEventListener("dragstart", (ev) => { console.log( `dragStart: dropEffect = ${ev.dataTransfer.dropEffect} ; effectAllowed = ${ev.dataTransfer.effectAllowed}`, ); // Add this element's id to the drag payload so the drop handler will // know which element to add to its tree ev.dataTransfer.setData("text", ev.target.id); ev.dataTransfer.effectAllowed = "move"; }); target.addEventListener("drop", (ev) => { console.log( `drop: dropEffect = ${ev.dataTransfer.dropEffect} ; effectAllowed = ${ev.dataTransfer.effectAllowed}`, ); ev.preventDefault(); // Get the id of the target and add the moved element to the target's DOM const data = ev.dataTransfer.getData("text"); ev.target.appendChild(document.getElementById(data)); }); target.addEventListener("dragover", (ev) => { console.log( `dragOver: dropEffect = ${ev.dataTransfer.dropEffect} ; effectAllowed = ${ev.dataTransfer.effectAllowed}`, ); ev.preventDefault(); // Set the dropEffect to move ev.dataTransfer.dropEffect = "move"; }); 

Spezifikationen

Specification
HTML
# dom-datatransfer-dropeffect-dev

Browser-Kompatibilität

Siehe auch