Heim > Web-Frontend > H5-Tutorial > Hauptteil

Ausführliche Erläuterung von Drag-and-Drop-Ereignissen (Drag and Drop) in HTML5

黄舟
Freigeben: 2017-02-21 13:27:30
Original
1431 Leute haben es durchsucht

Browser-Unterstützung

Internet Explorer 9, Firefox, Opera 12, Chrome und Safari 5 unterstützen Drag & Drop.

Hinweis: Drag & Drop wird in Safari 5.1.2 nicht unterstützt.

HTML5-Drag-and-Drop-Beispiel

<!DOCTYPE html>
<html> 
<head> 
<style type="text/css"> 
#p1 {width:488px;height:70px;padding:10px;border:1px solid #aaaaaa;} 
</style> 
<script type="text/javascript"> 
function allowDrop(ev) 
{ 
ev.preventDefault(); 
} 
 
function drag(ev) 
{ 
ev.dataTransfer.setData("Text",ev.target.id); 
} 
 
function drop(ev) 
{ 
ev.preventDefault(); 
var data=ev.dataTransfer.getData("Text"); 
ev.target.appendChild(document.getElementById(data)); 
} 
</script> 
</head> 
<body> 
 
<p>请把 Aseoe logo的图片拖放到矩形中:p> 
 
<p id="p1" ondrop="drop(event)" ondragover="allowDrop(event)">p> 
<br /> 
<img id="drag1" src="http://www.aseoe.com/statics/images/eoe/logo.png" 
draggable="true" ondragstart="drag(event)" /> 
 
</body> 
</html>
Nach dem Login kopieren



Element als ziehbar festlegen

Um das Element ziehbar zu machen, setzen Sie zunächst das Attribut „draggable“ auf „true“:

Was zu ziehen ist – ondragstart und setData()

Dann wird angegeben, was passiert, wenn ein Element gezogen wird.

Im obigen Beispiel ruft das Attribut ondragstart eine Funktion, Drag(event), auf, die die zu ziehenden Daten angibt. Die Methode

dataTransfer.setData() legt den Datentyp und den Wert der gezogenen Daten fest:

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
Nach dem Login kopieren



In diesem Beispiel die Daten Typ ist „Text“ und der Wert ist die ID des ziehbaren Elements („drag1“).

Wo soll der Ondragover platziert werden?


Das Ondragover-Ereignis gibt an, wo die gezogenen Daten platziert werden sollen.

Standardmäßig können Daten/Elemente nicht in anderen Elementen platziert werden. Wenn wir die Platzierung zulassen müssen, müssen wir die Standardbehandlung des Elements verhindern.

Dies wird durch Aufrufen der Methode event.preventDefault() des ondragover-Ereignisses platziert:

event.preventDefault()
Nach dem Login kopieren



- ondrop


Wenn die gezogenen Daten platziert werden, tritt das Drop-Ereignis ein.

Im obigen Beispiel ruft das ondrop-Attribut eine Funktion auf, drop(event):

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
Nach dem Login kopieren



Code-Erklärung:

Rufen Sie PreventDefault() auf, um die Standardverarbeitung von Daten durch den Browser zu vermeiden (das Standardverhalten des Drop-Ereignisses besteht darin, es als Link zu öffnen)

Über dataTransfer.getData("Text ") Methode zum Abrufen der gezogenen Daten. Diese Methode gibt jeden Datensatz in den gleichen Typ wie in der setData()-Methode zurück.

Die gezogenen Daten sind die ID des gezogenen Elements ("drag1")

Das gezogene Element an das platzierte Element (Zielelement) anhängen

Zusammenfassung

Das Obige ist eine detaillierte Erklärung von Drag-and-Drop-Ereignissen (Drag-and-Drop) in HTML5. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php .cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!