Drag & Drop elementen

Het verplaatsen van elementen op een pagina vergde ooit ingewikkelde JavaScripts, vaak met jQuery of iets dergelijks. Binnen HTML5 is er echter een API beschikbaar, waarmee het eenvoudig is realiseren.

Hieronder zie je twee rechthoeken. In de bovenste staat een logo. Als je er met de muis overheen gaat verandert de cursor in een kruis, waarmee wordt aangegeven dat het kan worden verplaatst.
Je kunt het plaatje in de onderste rechthoek slepen, maar niet ergens buiten de rechthoek. Terugslepen naar de bovenste rechthoek kan ook.

Op deze pagina wordt uitgelegd hoe je zoiets aanpakt. De code van het voorbeeld kun je downloaden om zelf te gebruiken, echter zonder het plaatje.

De werking van het script wordt besproken. Op de API-functions zelf wordt niet verder ingegaan.

Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<style>
#divBoven, #divOnder {
  width: 215px;
  height: 20px;
  padding: 10px;
  border: 1px solid navy;
}
</style>
<script>
function allowDrop(ev) {
  ev.preventDefault();
}
function myDrag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}
function myDrop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}
</script>

(Zet dit in de <BODY> op de plaats waar de rechthoeken moeten verschijnen).

<div id="divBoven" ondrop="myDrop(event)"
    ondragover="allowDrop(event)">
  <img id="drag1" src="logo.png" draggable="true"
      ondragstart="myDrag(event)" style="cursor:move">
</div>
<div id="divOnder" ondrop="myDrop(event)"
    ondragover="allowDrop(event)"></div>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb504.zip, 556 bytes.

 
terug

html-504; Laatste wijziging: 27 mei 2020