Heim  >  Artikel  >  Web-Frontend  >  Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen

Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen

高洛峰
高洛峰Original
2017-03-12 16:42:301581Durchsuche

Rufen Sie preventDefault() auf, um die Standardverarbeitung von Daten durch den Browser zu vermeiden (das Standardverhalten von Drop Event besteht darin, es als Link zu öffnen) über dataTransfer Die getData(Text)-Methode ruft die gezogenen Daten ab. Interessierte Freunde können sich auf den ursprünglichen Effekt beziehen nach dem Ziehen

Der Code lautet wie folgt

Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen

Der Code lautet wie folgt:

Es mag etwas kompliziert erscheinen, aber wir können die verschiedenen Teile des Drag-and-Drop-Ereignisses separat untersuchen.

Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-ElementenLegen Sie das Element als ziehbar fest

Um das Element ziehbar zu machen, setzen Sie zunächst das ziehbare -Attribut

auf true:

[code]
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#p1, #p2
{float:left; width:100px; height:35px; margin:10px;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>
<img  src="/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" / alt="Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen" >
<p id="p1" ondrop="drop(event)" ondragover="allowDrop(event)">
 </p>
<p id="p2" ondrop="drop(event)" ondragover="allowDrop(event)"></p>
</body>
</html>

[/code]
Der Code lautet wie folgt:

Was zu ziehen ist - ondragstart und setData()

Dann wird angegeben, dass wenn das Element wird gezogen, was passiert Was. Im obigen Beispiel ruft das Attribut ondragstart eine
-Funktion

, drag(

event

), auf, die die zu ziehenden Daten angibt. Die Methode
<img  draggable="true" / alt="Html5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen" >

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

Der Code lautet wie folgt: In diesem Beispiel ist der Datentyp „Text“ und der Wert ist die ID des ziehbaren Elements („drag1“).

Wo platziert werden – ondragover

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.

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
Dies geschieht durch Aufrufen der Methode

event
.preventDefault() des ondragover-Ereignisses:

Der Code lautet wie folgt:

Ablegen – Ondrop

Wenn die gezogenen Daten abgelegt werden, tritt das Drop-Ereignis auf. Im obigen Beispiel ruft das ondrop-Attribut eine Funktion auf, drop(
event

):

event.preventDefault()
Der Code lautet wie folgt:

Code-Erklärung:

Rufen Sie PreventDefault() auf, um die Standardverarbeitung von Daten durch den Browser (das Standardverhalten des Drop-Ereignisses besteht darin, es als Link zu öffnen) über dataTransfer.getData zu vermeiden („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“). Hängen Sie das gezogene Element an das platzierte Element (Zielelement) an

Das obige ist der detaillierte Inhalt vonHtml5 implementiert das Ziehen und Ablegen von Bildern zwischen zwei div-Elementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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