Matukio ya ondrag
定义和用法
ondrag 事件在元素或文本选择被拖动时发生。
拖放是 HTML5 中非常常见的功能。就是当您“抓取”一个对象并将其拖动到不同位置时。如需学习更多知识,请阅读我们关于 HTML5 kusafiri的 HTML 教程。
Matokeo:如需使元素可拖动,请使用全局 HTML5 draggable 属性.
提示:默认情况下,链接和图像是可拖动的,不需要 draggable 属性。
在拖放操作的不同阶段,有许多事件被使用,并且可能发生:
在可拖动目标(源元素)上触发的事件:
- ondragstart - 当用户开始拖动元素时发生
- ondrag - 当元素被拖动时发生
- ondragend - 当用户完成拖动元素时发生
在放置目标上触发的事件:
- ondragenter - 当被拖动的元素进入放置目标时发生
- ondragover - 当被拖动的元素在放置目标上时发生
- ondragleave - 当被拖动的元素离开放置目标时发生
- ondrop - 当被拖动的元素被放在放置目标上时发生
Matokeo:Kwenye uondoa element, heshima ya ondrag inatoa kila 350 ms.
Mifano
Washindwa kufanya JavaScript wakati uondoa <p> element:
<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
Hapo chini kuna mifano mingi ya TIY.
Majadiliano
Kwenye HTML:
<element ondrag="myScript">
Kwenye JavaScript:
object.ondrag = function(){myScript};
Kwenye JavaScript, tumia methodi addEventListener():
object.addEventListener("drag", myScript);
Matokeo:Internet Explorer 8 au mwanzo wa msingi haukuwa na mpangilio addEventListener() method.
Maelezo ya mteknolojia
Inakatalia: | Inaonesha |
---|---|
Inafaidika: | Inaonesha |
Aina ya matukio: | DragEvent |
Vitambulasho vya HTML vilivyo na msaada: | Vilelele vya HTML zote |
DOM Version: | Matukio ya Kiwango 3 |
Makampuni ya kibali
Inaonyesha kufikirika cha kwanza cha kusukuma kwa browser kina inayosimamia matukio haya.
matukio | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondrag | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Mafanikio mengi
Tukio za kuingia kwa kusababisha zote za kufikirika zilizopatikana:
<p draggable="true" id="dragtarget">Angalia nani!</p> <div class="droptarget">Angalia hapa!</div> <script> /* ----------------- Matokeo ya matukio ya kuingia kwa kusababisha kwenye kipakuo cha kuingia kwa kusababisha ----------------- */ document.addEventListener("dragstart", function(event) { // dataTransfer.setData() method kumteua aina ya data na thamani ya data ya element iliyotumika kuingia kwa kusababisha event.dataTransfer.setData("Text", event.target.id); // Kamilifu kuingia kwa kusababisha p element kisha kichukua macho document.getElementById("demo").innerHTML = "Kuanza kuingia kwa kusababisha p element."; // Kamilifu kuingia kwa kusababisha p element kisha kubadilisha viwango vya kina event.target.style.opacity = "0.4"; }); // Kamilifu kuingia kwa kusababisha p element kisha kubadilisha rangi ya macho ya chapa document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // Kamilifu kuingia kwa kusababisha p element kisha kichukua macho na kusimamia kifupi cha viwango document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "Kamilifu kuingia kwa kusababisha p element."; event.target.style.opacity = "1"; }); /* ----------------- Hatua inayotokea katika mifano wa upelekeshaji ----------------- */ // Ikiwa p elementi inayotoka inakufikia droptarget, kuingiza rangia ya DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // Kwa msingi, haikubaliani kuingiza data/elementi kwenye mifano mengine. Kupinga hatua ya msingi, lazima nitaezuia hatua ya elementi document.addEventListener("dragover", function(event) { event.preventDefault(); }); // Ikiwa p elementi inayotoka inakufikia droptarget, kuingiza ujao wa DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* On drop - Kupunguza hatua ya msingi wa mifano (inaingizwa kama muungano wa kina kina kina) Kuondoa rangia ya matukio na ujao wa DIV Pakua data inayotoka kwa kutumia method ya dataTransfer.getData() Data inaitwa kwa kutoka elementi inayotoka id ("drag1") Inaingia kina kina kina elementi inayotoka */ document.addEventListener("drop", function(event) { event.preventDefault(); if ( event.target.className == "droptarget" ) { document.getElementById("demo").style.color = ""; event.target.style.border = ""; var data = event.dataTransfer.getData("Text"); event.target.appendChild(document.getElementById(data)); } }); </script>
Mawasiliano ya hali
HTML Mafunzo:HTML5 kusafiri
Kitabu cha mifano cha HTML:Majukuu ya HTML draggable