ตัวอย่าง
รัน JavaScript เมื่อ <p> องค์ประกอบที่จะถูกลาก:
<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
ลองตัวเอง» เพิ่มเติม "Try it Yourself" ตัวอย่างด้านล่าง
ความหมายและการใช้งาน
เหตุการณ์ที่เกิดขึ้นเมื่อ ondrag องค์ประกอบหรือเลือกข้อความจะถูกลาก
ลากและวางเป็นคุณลักษณะที่พบบ่อยมากใน HTML5 มันคือเมื่อคุณ "grab" วัตถุและลากไปยังตำแหน่งที่แตกต่างกัน สำหรับข้อมูลเพิ่มเติมโปรดดูที่การสอนของเราใน HTML HTML5 ลากและวาง
หมายเหตุ: เพื่อให้องค์ประกอบลากใช้ HTML5 โลก ลาก แอตทริบิวต์
เคล็ดลับ: การเชื่อมโยงและภาพที่ลากโดยค่าเริ่มต้นและไม่จำเป็นต้อง draggable แอตทริบิวต์
มีหลายเหตุการณ์ที่มีการใช้กันอยู่และสามารถเกิดขึ้นได้ในระยะที่แตกต่างกันของการลากและวางการดำเนินงาน:
- เหตุการณ์ยิงเป้าหมายลาก (the source element) :
- ondragstart - เกิดขึ้นเมื่อผู้ใช้เริ่มที่จะลากองค์ประกอบ
- ondrag - เกิดขึ้นเมื่อมีองค์ประกอบที่จะถูกลาก
- ondragend - เกิดขึ้นเมื่อผู้ใช้มีการดำเนินการเสร็จสิ้นการลากองค์ประกอบ
- เหตุการณ์ยิงเป้าหมายลดลง:
- OnDragEnter - เกิดขึ้นเมื่อองค์ประกอบลากเข้าสู่เป้าหมายลดลง
- OnDragOver - เกิดขึ้นเมื่อองค์ประกอบลากมากกว่าเป้าหมายลดลง
- ondragleave - เกิดขึ้นเมื่อองค์ประกอบลากใบเป้าหมายลดลง
- ondrop - เกิดขึ้นเมื่อองค์ประกอบลากจะลดลงไปตามเป้าหมายลดลง
หมายเหตุ: ในขณะที่ลากองค์ประกอบเหตุการณ์ ondrag ไฟทุก 350 มิลลิวินาที
สนับสนุนเบราว์เซอร์
ตัวเลขในตารางระบุราว์เซอร์รุ่นแรกที่สนับสนุนอย่างเต็มที่เหตุการณ์
เหตุการณ์ | |||||
---|---|---|---|---|---|
ondrag | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
วากยสัมพันธ์
ใน HTML:
ใน JavaScript:
object .ondrag=function(){ ลองตัวเอง»
ใน JavaScript โดยใช้ addEventListener() วิธีการ:
object .addEventListener("drag", myScript );
ลองตัวเอง» หมายเหตุ: addEventListener() วิธีการที่ไม่ได้รับการสนับสนุนใน Internet Explorer 8 และรุ่นก่อนหน้านี้
รายละเอียดทางเทคนิค
บับเบิ้ล: | ใช่ |
---|---|
ยกเลิก: | ใช่ |
ประเภทเหตุการณ์: | DragEvent |
แท็ก HTML ที่รองรับ: | องค์ประกอบ HTML ทั้งหมด |
DOM เวอร์ชัน: | ระดับที่ 3 เหตุการณ์ |
ตัวอย่างอื่น ๆ
ตัวอย่าง
การสาธิตการเป็นไปได้ทั้งหมดการลากและวางเหตุการณ์:
<p draggable="true" id="dragtarget">Drag me!</p>
<div
class="droptarget">Drop here!</div>
<script>
/* ----------------- Events fired on the drag target
----------------- */
document.addEventListener("dragstart", function(event) {
// The dataTransfer.setData() method sets the data type and the value of the
dragged data
event.dataTransfer.setData("Text", event.target.id);
// Output some text when starting to drag the p element
document.getElementById("demo").innerHTML = "Started to drag the p
element.";
// Change the opacity of the
draggable element
event.target.style.opacity = "0.4";
});
// While dragging the p element, change the color
of the output text
document.addEventListener("drag", function(event) {
document.getElementById("demo").style.color = "red";
});
// Output
some text when finished dragging the p element and reset the opacity
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "Finished dragging the p
element.";
event.target.style.opacity = "1";
});
/* ----------------- Events fired on the drop target
----------------- */
// When the draggable p element enters the
droptarget, change the DIVS's border style
document.addEventListener("dragenter", function(event) {
if (
event.target.className == "droptarget" ) {
event.target.style.border =
"3px dotted red";
}
});
// By default, data/elements cannot be dropped in
other elements. To allow a drop, we must prevent the default handling of the
element
document.addEventListener("dragover", function(event) {
event.preventDefault();
});
// When the draggable p element leaves
the droptarget, reset the DIVS's border style
document.addEventListener("dragleave", function(event) {
if (
event.target.className == "droptarget" ) {
event.target.style.border = "";
}
});
/* On drop - Prevent the browser default handling of the data
(default is open as link on drop)
Reset the color of the output text and
DIV's border color
Get the dragged data with the dataTransfer.getData() method
The dragged data is the id of the dragged
element ("drag1")
Append the dragged element into the drop element
*/
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>
ลองตัวเอง» หน้าเว็บที่เกี่ยวข้อง
HTML Tutorial: การ ลากและวาง HTML5
อ้างอิง HTML: HTML แอตทริบิวต์ลาก
วัตถุที่จัดกิจกรรม