ล่าสุดการพัฒนาเว็บบทเรียน
×

HTML5 เกี่ยวกับการสอน

HTML บ้าน HTML บทนำ บรรณาธิการ HTML HTML ขั้นพื้นฐาน HTML องค์ประกอบ HTML แอตทริบิวต์ HTML หัวเรื่อง HTML ย่อหน้า HTML รูปแบบ HTML การจัดรูปแบบ HTML ใบเสนอราคา HTML รหัสคอมพิวเตอร์ HTML ความคิดเห็น HTML สี HTML CSS HTML การเชื่อมโยง HTML ภาพ ตาราง HTM​​L รายการ HTML HTML บล็อกและ Inline องค์ประกอบ HTML ชั้นเรียน HTML แบบ HTML อ่อนไหว HTML iframes HTML JavaScript HTML หัว HTML หน่วยงาน HTML สัญลักษณ์ HTML charset HTML URL เปลี่ยนเป็นรหัส HTML XHTML

HTML ฟอร์ม

HTML ฟอร์ม HTML องค์ประกอบของแบบฟอร์ม HTML รูปแบบการใส่ HTML แอตทริบิวต์การป้อนข้อมูล

HTML5

HTML5 แนะนำ HTML5 สนับสนุน HTML5 องค์ประกอบ HTML5 อรรถศาสตร์ การย้ายถิ่นของ HTM​​L5 HTML5 คู่มือสไตล์

HTML กราฟิก

HTML ผ้าใบ HTML SVG

HTML สื่อ

HTML สื่อ HTML วีดีโอ HTML เสียง HTML ปลั๊กอิน HTML YouTube

HTML APIs

HTML ตำแหน่งทางภูมิศาสตร์ HTML ลาก / Drop HTML เก็บข้อมูลท้องถิ่น HTML App ขุมทรัพย์ HTML คนงานเว็บ HTML SSE

HTML ตัวอย่าง

HTML ตัวอย่าง HTML ทดสอบ HTML5 ทดสอบ HTML สรุป

HTML คู่มืออ้างอิง

HTML รายการแท็ก HTML แอตทริบิวต์ เหตุการณ์ HTML HTML ผ้าใบ HTML เสียง / วิดีโอ HTML doctypes HTML สี HTML ชุดตัวอักษร HTML URL เปลี่ยนเป็นรหัส HTML รหัสภาษา HTTP ข้อความ HTTP วิธีการ PX to EM แปลง แป้นพิมพ์ลัด

HTML5 ลากและวาง


ลากและวางเป็นส่วนหนึ่งของมาตรฐาน HTML5


ลากภาพข้างต้นลงในรูปสี่เหลี่ยมผืนผ้า


ในรูปแบบ HTML

ข้อกำหนดร่าง HTML5 ทำงานรวมถึงการสนับสนุนการลากและวาง HTML5 สนับสนุนแตกต่างกันของการลากและวางคุณสมบัติรวมทั้ง:

  • ลากและวางข้อความและรหัส HTML
  • ลากและวางองค์ประกอบ HTML
  • ลากและวางไฟล์

ขึ้นอยู่กับการดำเนินการที่จำเป็นซึ่งเป็นหนึ่งในประเภทดังกล่าวข้างต้นสามารถนำมาใช้ โปรดทราบว่าเมื่อองค์ประกอบ HTML ถูกลากสำหรับการเคลื่อนย้ายตำแหน่งปัจจุบันรหัสของมันจะถูกส่งไปยังองค์ประกอบหลักปลายทาง; จึงส่งข้อความและถือได้ว่าเป็นกลุ่มแรก

แอพลิเคชันอีเมลบนเว็บของ Google Gmail สนับสนุนการลากและวางของภาพและเอกสารแนบในเบราว์เซอร์ใหม่ล่าสุด Google Chrome และ Safari ของ Apple (5.x) และการค้นหารูปภาพของ Google สนับสนุนการลากและวาง


ลากแล้ววาง

ลากและวางเป็นคุณลักษณะที่พบบ่อยมาก มันคือเมื่อคุณ "grab" วัตถุและลากไปยังตำแหน่งที่แตกต่างกัน

ใน HTML5 ลากและวางเป็นส่วนหนึ่งของมาตรฐานและองค์ประกอบใด ๆ สามารถลาก


สนับสนุนเบราว์เซอร์

ตัวเลขในตารางระบุราว์เซอร์รุ่นแรกที่สนับสนุนอย่างเต็มที่ลากและวาง

API
Drag and Drop 4.0 9.0 3.5 6.0 12.0

ลาก HTML และตัวอย่าง Drop

ตัวอย่างด้านล่างคือลากง่ายและเป็นตัวอย่างวาง:

ตัวอย่าง

<!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>
ลองตัวเอง»

มันอาจจะดูซับซ้อน แต่ช่วยให้ผ่านไปทุกชิ้นส่วนที่แตกต่างกันของการลากและวางเหตุการณ์


ทำให้ธาตุที่สามารถลากได้

ครั้งแรกของทั้งหมด: เพื่อให้องค์ประกอบลากตั้ง draggable แอตทริบิวต์ true :

<img draggable="true">

สิ่งที่ต้องลาก - ondragstart และ setData()

จากนั้นระบุสิ่งที่ควรจะเกิดขึ้นเมื่อองค์ประกอบถูกลาก

ในตัวอย่างข้างต้น ondragstart แอตทริบิวต์เรียกฟังก์ชั่น drag(event) ที่ระบุว่าข้อมูลที่จะลาก

dataTransfer. setData() dataTransfer. setData() วิธีการตั้งค่าชนิดของข้อมูลและความคุ้มค่าของข้อมูลลากไปนี้:

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

ในกรณีนี้ชนิดข้อมูลเป็น "text" และมีค่าเป็น ID ขององค์ประกอบลาก ("drag1")


สถานที่ที่จะวาง - ondragover

ondragover เหตุการณ์ระบุว่าข้อมูลที่ลากสามารถลดลง

โดยค่าเริ่มต้น / ข้อมูลองค์ประกอบไม่สามารถลดลงในองค์ประกอบอื่น ๆ ที่จะช่วยให้ลดลงเราจะต้องป้องกันไม่ให้เกิดการจัดการเริ่มต้นขององค์ประกอบ

นี้จะกระทำโดยการเรียก event. preventDefault() event. preventDefault() วิธีการสำหรับ ondragover เหตุการณ์:

event . preventDefault()

ทำฝาก - ondrop

เมื่อข้อมูลที่ลากจะลดลงเหตุการณ์ที่เกิดขึ้นลดลง

ในตัวอย่างข้างต้น ondrop แอตทริบิวต์เรียกฟังก์ชั่น drop(event) :

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

รหัสอธิบาย:

  • โทร preventDefault() เพื่อป้องกันไม่ให้การจัดการที่เริ่มต้นเบราว์เซอร์ของข้อมูล (default is open as link on drop)
  • ได้รับข้อมูลที่ลากด้วย dataTransfer. getData() dataTransfer. getData() วิธีการ วิธีการนี้จะส่งกลับข้อมูลใด ๆ ที่ถูกกำหนดให้เป็นประเภทเดียวกันใน setData() วิธีการ
  • ข้อมูลลากเป็น ID ขององค์ประกอบลากที่ ("drag1")
  • ผนวกองค์ประกอบลากเข้าไปใน drop องค์ประกอบ

ลากภาพไปมา
วิธีการลาก (and drop) ภาพไปมาระหว่างสอง <div> องค์ประกอบ