HTML handleiding

HTML TUIS HTML Inleiding HTML-redakteurs HTML Basies HTML elemente HTML-kenmerke HTML-opskrifte HTML paragrawe HTML-style HTML-formatering HTML-aanhalings HTML-kommentaar HTML kleure HTML CSS HTML skakels HTML beelde HTML Favicon HTML-tabelle HTML-lyste HTML-blok en inlyn HTML-klasse HTML ID HTML iframes HTML JavaScript HTML-lêerpaaie HTML kop HTML-uitleg HTML reageer HTML Rekenaarkode HTML semantiek HTML-stylgids HTML-entiteite HTML Simbole HTML Emoji's HTML-tekenset HTML URL enkodeer HTML vs. XHTML

HTML -vorms

HTML-vorms HTML-vorm eienskappe HTML-vormelemente HTML-invoertipes HTML-invoerkenmerke HTML-invoervorm-kenmerke

HTML -grafika

HTML-doek HTML SVG

HTML Media

HTML Media HTML video HTML oudio HTML-inproppe HTML YouTube

HTML API's

HTML geoligging HTML Sleep/Drop HTML-webberging HTML Web Werkers HTML SSE

HTML voorbeelde

HTML voorbeelde HTML vasvra HTML-oefeninge HTML-sertifikaat HTML Opsomming HTML-toeganklikheid

HTML- verwysings

HTML-merkerlys HTML-kenmerke HTML globale kenmerke HTML-blaaierondersteuning HTML-gebeurtenisse HTML kleure HTML-doek HTML oudio/video HTML Doktipes HTML-karakterstelle HTML URL enkodeer HTML-langkodes HTTP-boodskappe HTTP metodes PX na EM-omskakelaar Sleutelbord kortpaaie

HTML Sleep en Drop API


In HTML kan enige element gesleep en laat val word.


Voorbeeld

W3Skole

Sleep die W3Schools-prent in die reghoek.


Sleep en los

Sleep en los is 'n baie algemene kenmerk. Dit is wanneer jy 'n voorwerp "gryp" en dit na 'n ander plek sleep.


Blaaierondersteuning

Die nommers in die tabel spesifiseer die eerste blaaierweergawe wat Sleep en Los ten volle ondersteun.

API
Drag and Drop 4.0 9.0 3.5 6.0 12.0

HTML Sleep en Drop Voorbeeld

Die voorbeeld hieronder is 'n eenvoudige sleep-en-los voorbeeld:

Voorbeeld

<!DOCTYPE HTML>
<html>
<head>
<script>
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>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

Dit lyk dalk ingewikkeld, maar kom ons gaan deur al die verskillende dele van 'n sleep-en-los gebeurtenis.



Maak 'n element sleepbaar

Eerstens: Om 'n element sleepbaar te maak, stel die draggableeienskap op waar:

<img draggable="true">

Wat om te sleep - ondragstart en setData()

Spesifiseer dan wat moet gebeur wanneer die element gesleep word.

In die voorbeeld hierbo ondragstartroep die kenmerk 'n funksie, sleep(gebeurtenis), wat spesifiseer watter data gesleep moet word.

Die dataTransfer.setData()metode stel die datatipe en die waarde van die gesleep data:

function drag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}

In hierdie geval is die datatipe "teks" en die waarde is die id van die sleepbare element ("drag1").


Waar om te laat val - ondragover

Die ondragovergebeurtenis spesifiseer waar die gesleep data laat val kan word.

By verstek kan data/elemente nie in ander elemente weggegooi word nie. Om 'n daling toe te laat, moet ons die verstek hantering van die element verhoed.

Dit word gedoen deur die event.preventDefault()metode vir die ondragover-gebeurtenis aan te roep:

event.preventDefault()

Doen die Drop - ondrop

Wanneer die gesleepde data laat val word, vind 'n drop-gebeurtenis plaas.

In die voorbeeld hierbo roep die ondrop-kenmerk 'n funksie, drop(event):

function drop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}

Kode verduidelik:

  • Roep preventDefault() om te verhoed dat die blaaier verstek hantering van die data (verstek is oop as skakel by drop)
  • Kry die gesleep data met die dataTransfer.getData() metode. Hierdie metode sal enige data terugstuur wat op dieselfde tipe in die setData()-metode gestel is
  • Die gesleep data is die ID van die gesleep element ("drag1")
  • Voeg die gesleep element by die drop element

Meer voorbeelde

Voorbeeld

Hoe om 'n prent heen en weer tussen twee <div>-elemente te sleep (en te laat val):