Peristiwa ondragover
Definisi dan penggunaan
Peristiwa ondragover terjadi saat elemen yang dapat digerakkan atau pilihan teks yang dipilih digerakkan ke target penempatan yang berlaku.
Secara baku, data/elemen tidak dapat dihapus di dalam elemen lain. Untuk memungkinkan penempatan, kita harus mencegah pengendalian baku elemen. Ini dilakukan dengan memanggil metode event.preventDefault() peristiwa ondragover.
Pindah dan lepas adalah fungsi yang sangat umum di HTML5. Ini adalah saat Anda "menangkap" objek dan menggerakkannya ke posisi yang lain. Untuk mendapatkan pengetahuan lebih lanjut, baca tentang Pindah dan Letak HTML5tutorial HTML kami.
Keterangan:Untuk membuat elemen dapat digerakkan, gunakan global Atribut draggable HTML5。
Petunjuk:Secara baku, tautan dan gambar dapat digerakkan, tanpa atribut draggable.
Pada berbagai tahap operasi seret dan lepas, banyak peristiwa yang digunakan dan mungkin terjadi:
Peristiwa yang diaktifkan di target yang dapat digerakkan (elemen sumber):
- ondragstart - Terjadi saat pengguna memulai gerakan elemen
- ondrag - Terjadi saat elemen digerakkan
- ondragend - Terjadi saat pengguna menyelesaikan gerakan elemen
Peristiwa yang diaktifkan di target penempatan:
- ondragenter - Terjadi saat elemen yang digerakkan memasuki target penempatan
- ondragover - Terjadi saat elemen yang digerakkan berada di target penempatan
- ondragleave - Terjadi saat elemen yang digerakkan meninggalkan target penempatan
- ondrop - Terjadi saat elemen yang digerakkan ditempatkan di target penempatan
Keterangan:Saat elemen digerakkan, peristiwa ondragover diaktifkan setiap 350 milidetik.
Contoh
Eksekusi JavaScript saat elemen diangkat ke target penempatan:
<div ondragover="myFunction(event)"></div>
Ada banyak contoh TIY di bawah halaman.
Sintaksis
Pada HTML:
<elemen ondragover="myScript">
Pada JavaScript:
objek.ondragover = function(){myScript};
Pada JavaScript, gunakan metode addEventListener():
objek.addEventListener("dragover", myScript);
Keterangan:Internet Explorer 8 atau versi yang lebih awal tidak mendukung metode addEventListener()。
Detil teknis
Pembubaran: | Didukung |
---|---|
Dapat dibatalkan: | Didukung |
Tipe event: | DragEvent |
Tag HTML yang didukung: | Semua elemen HTML |
Versi DOM: | Level 3 Events |
Dukungan browser
Angka di tabel menunjukkan versi pertama browser yang mendukung event ini.
Event | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondragover | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Beberapa contoh lain
Pertunjukan demo dari semua event geser dan lepas yang mungkin:
<p draggable="true" id="dragtarget">Gosongkan saya!</p> <div class="droptarget">Jatuhkan disini!</div> <script> /* ----------------- Event yang dijalankan 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); // Menyampaikan beberapa teks saat elemen p mulai digeser document.getElementById("demo").innerHTML = "Mulai geser 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"; }); // Menyampaikan beberapa teks dan mengatur kecerahan setelah elemen p digeser document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "Selesai geser elemen p."; event.target.style.opacity = "1"; }); /* ----------------- Event yang diaktifkan di target penempatan ----------------- */ // Saat elemen p yang dapat diangkat memasuki droptarget, ubah gaya bingkai DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // Secara bawaan, data/element tidak dapat ditempatkan di dalam elemen lain. Untuk memungkinkan pindahan, kita harus menghentikan penanganan bawaan elemen document.addEventListener("dragover", function(event) { event.preventDefault(); }); // Saat elemen p yang dapat diangkat meninggalkan droptarget, atur ulang gaya bingkai DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* Pada saat dijatuhkan - menghentikan penanganan bawaan browser untuk data (buka link bawaan saat dijatuhkan) Atur ulang warna teks dan garis bingkai DIV Ambil data yang diangkat menggunakan metode dataTransfer.getData() Data yang diangkat adalah id elemen yang diangkat ("drag1") Tambahkan elemen yang dapat diangkat ke elemen tujuan */ 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>