Peristiwa ondragstart
Kursus yang disarankan:
Definisi dan penggunaan
Acara ondragstart terjadi saat pengguna mulai menggeser elemen atau pilihan teks. Tolong HTML5pada tutorial HTML. Geser dan lepas adalah fungsi yang sangat umum dalam HTML5. Ini adalah saat Anda "menangkap" objek dan menariknya ke posisi yang berbeda. Untuk mendapatkan pengetahuan lebih lanjut, baca artikel kami tentang
Catatan:Untuk membuat elemen dapat digeser, gunakan tutorial HTML global Atribut draggable HTML5。
Petunjuk:Secara default, tautan dan gambar dapat digeser, tanpa atribut draggable.
Pada berbagai tahap operasi geser dan lepas, banyak acara yang digunakan, dan mungkin terjadi:
Acara yang diaktifkan di target yang dapat digeser (elemen sumber):
- ondragstart - Terjadi ketika pengguna mulai menggeser elemen.
- ondrag - Terjadi ketika elemen digeser.
- ondragend - Terjadi ketika pengguna menyelesaikan menggeser elemen.
Acara yang diaktifkan di target penempatan:
- ondragenter - Terjadi ketika elemen yang digeser memasuki target penempatan.
- ondragover - Terjadi ketika elemen yang digeser berada di atas target penempatan.
- ondragleave - Terjadi ketika elemen yang digeser meninggalkan target penempatan.
- ondrop - Terjadi ketika elemen yang digeser ditempatkan di target penempatan.
Contoh
Eksekusi JavaScript saat pengguna mulai menggeser elemen <p>:
<p draggable="true" ondragstart="myFunction(event)">Seret saya!</p>
Ada contoh TIY lebih banyak di bawah halaman.
Sintaksis
Pada HTML:
<element ondragstart="myScript">
Pada JavaScript:
object.ondragstart = function(){myScript};
Pada JavaScript, gunakan metode addEventListener():
object.addEventListener("dragstart", myScript);
Catatan:Internet Explorer 8 atau versi yang lebih awal tidak mendukung method addEventListener()。
Detil teknis
Bubbling: | Didukung |
---|---|
Dapat dibatalkan: | Didukung |
Tipe peristiwa: | DragEvent |
Tag HTML yang didukung: | Semua elemen HTML |
Versi DOM: | Peristiwa Level 3 |
Dukungan browser
Angka di tabel menunjukkan versi pertama browser yang mendukung peristiwa ini.
Peristiwa | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondragstart | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Contoh lain
Pertunjukan untuk semua peristiwa seret dan lepas yang mungkin:
<p draggable="true" id="dragtarget">Seret saya!</p> <div class="droptarget">Seret di sini!</div> <script> /* ----------------- Peristiwa yang diaktifkan di sisi target seret dan lepas ----------------- */ document.addEventListener("dragstart", function(event) { // Mengatur jenis dan nilai data yang diseret dengan method dataTransfer.setData() event.dataTransfer.setData("Text", event.target.id); // Menyempan beberapa teks saat mulai menyeret elemen p document.getElementById("demo").innerHTML = "Mulai menyeret elemen p."; // Mengubah kecerahan elemen yang dapat diseret event.target.style.opacity = "0.4"; }); // Mengubah warna teks output semasa menyeret elemen p document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // Menyempan beberapa teks dan mengatur kecerahan setelah menyeret elemen p document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "Selesai menyeret elemen p."; event.target.style.opacity = "1"; }); /* ----------------- Peristiwa yang diaktifkan di tempat pemasangan ----------------- */ // Saat elemen p yang dapat diseret memasuki droptarget, ubah gaya garis kotak DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // Secara baku, data/element tidak dapat disisihkan di dalam elemen lain. Untuk memungkinkan pemasangan, kita harus menghentikan penanganan baku elemen document.addEventListener("dragover", function(event) { event.preventDefault(); }); // Saat elemen p yang dapat diseret meninggalkan droptarget, atur ulang gaya garis kotak DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* Pada saat dilepas - Menghentikan penanganan baku browser untuk data (membuka seperti tautan saat dilepas baku) Atur ulang warna teks dan warna garis kotak DIV Dapatkan data yang diseret menggunakan method dataTransfer.getData() Data yang diseret adalah id elemen yang diseret ("drag1") Tambah elemen yang dapat diseret ke dalam elemen tempat */ 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>