Event ondrag
Definisi dan penggunaan
Peristiwa ondrag terjadi saat elemen atau pilihan teks diseret.
Seret dan lepas adalah fungsi yang sangat umum di HTML5. Itu seperti saat Anda "menangkap" objek dan menaruhnya ke posisi yang lain. Untuk mengetahui lebih lanjut, baca tentang Drag and Drop HTML5tutori kalimat HTML.
Keterangan:Untuk membuat elemen dapat diseret, gunakan global Atribut draggable HTML5。
Petunjuk:Secara baku, tautan dan gambar dapat diseret, tanpa perlu atribut draggable.
Pada berbagai tahap operasi seret dan lepas, banyak peristiwa yang digunakan dan mungkin terjadi:
Peristiwa yang dijalankan di target yang dapat diseret (elemen asal):
- ondragstart - Terjadi saat pengguna mulai menyeret elemen
- ondrag - Terjadi saat elemen diseret
- ondragend - Terjadi saat pengguna menyelesaikan menyeret elemen
Peristiwa yang dijalankan di target tempat:
- ondragenter - Terjadi saat elemen yang diseret memasuki target tempat
- ondragover - Terjadi saat elemen yang diseret berada di tempat target
- ondragleave - Terjadi saat elemen yang diseret keluar dari target tempat
- ondrop - Terjadi saat elemen yang diseret ditempatkan di target tempat
Keterangan:Pada saat elemen diseret, peristiwa ondrag dijalankan setiap 350 milidetik.
Contoh
Eksekusi JavaScript saat elemen <p> diseret:
<p draggable="true" ondrag="myFunction(event)">Seret Saya!</p>
Ada banyak contoh TIY di bawah halaman.
Sintaksis
Pada HTML:
<element ondrag="myScript">
Pada JavaScript:
object.ondrag = function(){myScript};
Pada JavaScript, gunakan metode addEventListener():
object.addEventListener("drag", myScript);
Keterangan:Internet Explorer 8 atau versi yang lebih awal tidak mendukung method addEventListener()。
Detil teknis
Bubbling: | Didukung |
---|---|
Dapat dibatalkan: | Didukung |
Tipe event: | DragEvent |
Tag HTML yang didukung: | Semua elemen HTML |
Versi DOM: | Level 3 Events |
Dukungan Browser
Angka di tabel menandai versi browser pertama yang mendukung event ini.
Event | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondrag | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Contoh lebih banyak
Pertunjukan untuk semua event geser-lepas yang mungkin:
<p draggable="true" id="dragtarget">Geser saya!</p> <div class="droptarget">Tolong letak disini!</div> <script> /* ----------------- Event yang diaktifkan di target geser ----------------- */ document.addEventListener("dragstart", function(event) { // Mengatur jenis dan nilai data yang disetel melalui method dataTransfer.setData() event.dataTransfer.setData("Text", event.target.id); // Menampilkan beberapa teks saat elemen p dimulai digeser document.getElementById("demo").innerHTML = "Mulai menggeser elemen p."; // Mengubah kecerahan elemen yang dapat digeser event.target.style.opacity = "0.4"; }); // Mengubah warna teks output saat elemen p digeser document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // Menampilkan beberapa teks dan mengatur kecerahan setelah elemen p digeser document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "Selesai menggeser elemen p."; event.target.style.opacity = "1"; }); /* ----------------- Peristiwa yang dijalankan di target penempatan ----------------- */ // Saat p elemen yang dapat diangkat memasuki droptarget, merubah gaya bingkai DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // Secara standar, data/elemen tidak dapat disisipkan ke dalam elemen lain. Untuk memungkinkan penempatan, kita harus mencegah penanganan standar elemen document.addEventListener("dragover", function(event) { event.preventDefault(); }); // Saat p elemen yang dapat diangkat meninggalkan droptarget, menetapkan gaya bingkai DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* Pada saat drop - Mencegah penggunaan standar browser untuk data (membuka link saat di drop) */ Menetapkan warna teks output dan warna garis bingkai DIV Mengambil data yang diangkat menggunakan metode dataTransfer.getData() Data yang diangkat adalah id elemen yang dapat diangkat ("drag1") Menyambungkan elemen yang dapat diangkat ke dalam elemen yang dijadikan tempat penempatan */ 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>