ເຫດການ ondrag
定义和用法
ondrag 事件在元素或文本选择被拖动时发生。
拖放是 HTML5 中非常常见的功能。就是当您“抓取”一个对象并将其拖动到不同位置时。如需学习更多知识,请阅读我们关于 ການຖອນຖົກເວັບໄຊ HTML5的 HTML 教程。
ຄວາມເຫັນ:如需使元素可拖动,请使用全局 HTML5 draggable 属性。
提示:默认情况下,链接和图像是可拖动的,不需要 draggable 属性。
在拖放操作的不同阶段,有许多事件被使用,并且可能发生:
ອາກາດທີ່ຖືກກະຕຸ້ນໃນປະຕູປະຕູວັດທີ່ສາມາດຖືກຖານມາ:
- ondragstart - ທີ່ຜູ້ນຳໃຊ້ເລີ່ມຖືກຖານມາສິ່ງ
- ondrag - ທີ່ສິ່ງຖືກຖານມາ
- ondragend - ທີ່ຜູ້ນຳໃຊ້ສຳເລັດການຖືກຖານມາສິ່ງ
ອາກາດທີ່ຖືກກະຕຸ້ນໃນປະຕູປະຕູວັດ:
- ondragenter - ທີ່ສິ່ງທີ່ຖືກຖານມາເຂົ້າປະຕູປະຕູວັດ
- ondragover - ທີ່ສິ່ງທີ່ຖືກຖານມາຢູ່ປະຕູປະຕູວັດ
- ondragleave - ທີ່ສິ່ງທີ່ຖືກຖານມາອອກຈາກປະຕູປະຕູວັດ
- ondrop - ທີ່ພົບວ່າສິ່ງທີ່ຖືກຖານມາຢູ່ປະຕູປະຕູວັດ
ຄວາມເຫັນ:ການດຳເນີນ ອາກາດ ondrag ໃນເວລາ 350 ມານິວຊອງ
ຕົວຢ່າງ
ການດຳເນີນ JavaScript ເມື່ອຖືກຖານ <p> ສະແດງ
<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
ບ່ອນທີ່ຢູ່ລຸ່ມບັນຫາທີ່ຈະພິຈາລະນາ
ວິນຍານ
ໃນ HTML:
<element ondrag="myScript">
ໃນ JavaScript:
object.ondrag = function(){myScript};
ໃນ JavaScript,ໃຊ້ພາສາສັນຍາບັນ addEventListener()
object.addEventListener("drag", myScript);
ຄວາມເຫັນ:ອິນເຕີເນັດ ອີເລັສຊອດ 8 ຫຼືຫຼາຍກວ່ານັ້ນບໍ່ສາມາດສະໜັບສະໜູນ addEventListener() ວິທີການ。
ລາຍລະອຽດເຕັກນິກ
ສະໜັບສະໜຸນ | ສະໜັບສະໜຸນ |
---|---|
ສາມາດລົບລ້າງຢ່າງ | ສະໜັບສະໜຸນ |
ຮູບແບບຂອງເຫດການ | DragEvent |
ຕົວເລກ HTML ທີ່ສະໜັບສະໜຸນ | ແມ່ນສະຖານະການ HTML ທັງໝົດ |
DOM 版本: | Level 3 Events |
ການສະໜັບສະໜຸນຂອງສານອາວຸດ
ຈຳນວນສີ່ລະພາບຂອງການສະໜັບສະໜຸນເຫດການຄັ້ງທຳອິດຂອງການສະແດງ
ເຫດການ | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondrag | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
ການຕື່ມຕື່ມອີກ
ການສະແດງທີ່ຢູ່ວ່າການຖົກຂຶ້ນສິ່ງທີ່ສາມາດຖົກໄດ້
<p draggable="true" id="dragtarget">ຖົກຂ້ອຍ!</p> <div class="droptarget">ຍົກຍ້ອງບັງນາງນີ້!</div> <script> /* ----------------- ສະຖານະການທີ່ຖືກຈຸດວັດຖຸຖົກ ----------------- */ document.addEventListener("dragstart", function(event) { // dataTransfer.setData()ວິທີການມີຫົວຂໍ້ຂອງຂໍ້ມູນທີ່ຖົກໄດ້ແລະຄວາມທີ່ມີ event.dataTransfer.setData("Text", event.target.id); // ອອກຂໍ້ຄວາມເວລາເລີ່ມຖົກ p element document.getElementById("demo").innerHTML = "ເລີ່ມຖົກ p element."; // ປ່ຽນຄວາມມັດຂອງບັນທຶກທີ່ສາມາດຖົກໄດ້ event.target.style.opacity = "0.4"; }); // ປ່ຽນສີຂອງຂໍ້ຄວາມອອກຫຼັງຖົກ p element ເວລາການຖົກ document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // ສຳເລັດການຖົກ p element ແລະອອກຂໍ້ຄວາມແລະປ່ຽນຄວາມມັດ document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "ສຳເລັດການຖົກຈາກບັນທຶກ p element."; event.target.style.opacity = "1"; }); /* ----------------- ການສະເໜີພາຍໃນບ່ອນວາງ ----------------- */ // ຖ້າເງິນສິນລະບົບ p ທີ່ສາມາດຖົ່ວຍາວໄດ້ເຂົ້າໃນ droptarget ທີ່ຈະປ່ຽນສີບີລາງຂອງ DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // ບໍ່ມີການສະແດງຂໍ້ມູນ/ປະກອບທີ່ສາມາດສະແດງຢູ່ໃນປະກອບອື່ນ. ເພື່ອອະນຸຍາດການສະແດງ, ພວກເຮົາຕ້ອງປ້ອງກັນການການດຳເນີນຄືນທີ່ຈະມີແບບຈົບພາຍໃນປະກອບ document.addEventListener("dragover", function(event) { event.preventDefault(); }); // ຖ້າເງິນສິນລະບົບ p ທີ່ສາມາດຖົ່ວຍາວໄດ້ອອກຈາກ droptarget ທີ່ຈະລົດການສະແດງສີບີລາງຂອງ DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* ລົດການວາງ - ປ້ອງກັນການການດຳເນີນຄືນທີ່ມີແບບຈົບພາຍໃນຜູ້ຄົນ (ປ່ຽນສະເໜີຂໍ້ມູນໃຫ້ເປັນການເຊື່ອມຕໍ່) ລົດການສະແດງສີບີລາງຂອງຂໍ້ມູນອອກສາຍແລະສີບີລາງຂອງ DIV ທົດລອງຂໍ້ມູນທີ່ຖືກຖົ່ວຍາວໃນກົນລະບົບ dataTransfer.getData() ຂໍ້ມູນທີ່ຖືກຖົ່ວຍາວແມ່ນ id ("drag1") ຂອງປະກອບທີ່ຖືກຖົ່ວຍາວ ສະເໜີປະກອບທີ່ຖືກຖົ່ວຍາວໄປໃນປະກອບທີ່ຖືກວາງ */ 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>