Peristiwa ondragenter

Definisi dan penggunaan

Event ondragenter terjadi saat elemen yang dapat diseret atau pilihan teks masuk ke target tempat yang berlaku.

event ondragenter dan ondragleave dapat membantu pengguna mengetahui saat elemen yang dapat diseret mendekati atau meninggalkan target tempat. Misalnya, dapat disesuaikan dengan mengatur warna latar belakang saat elemen mendekati target tempat dan menghapus warna saat elemen meninggalkan target tempat.

Seret dan lepas adalah fitur yang sangat umum dalam HTML5. Ini adalah saat Anda "menangkap" suatu objek dan menariknya ke posisi yang berbeda.Untuk mengetahui lebih lanjut, baca referensi kami tentang Pindah dan Jemput HTML5panduan HTML.

Keterangan:Untuk membuat elemen dapat diseret, gunakan Atribut draggable HTML5

Petunjuk:Secara baku, tautan dan gambar dapat diseret, tanpa atribut draggable.

Dalam berbagai tahap operasi seret dan lepas, banyak event yang digunakan, dan mungkin terjadi:

Event yang diaktifkan di target yang dapat diangkat (elemen sumber):

  • ondragstart - Terjadi saat pengguna mulai menarik elemen.
  • ondrag - Terjadi saat elemen diangkat.
  • ondragend - Terjadi saat pengguna menyelesaikan menarik elemen.

Event yang diaktifkan di target tempat:

  • ondragenter - Terjadi saat elemen yang diangkat masuk ke target tempat.
  • ondragover - Terjadi saat elemen yang diangkat berada di atas target tempat.
  • ondragleave - Terjadi saat elemen yang diangkat meninggalkan target tempat.
  • ondrop - Terjadi saat elemen yang diangkat ditempatkan di target tempat.

Contoh

Eksekusi JavaScript saat elemen yang dapat diangkat masuk ke target tempat:

<div ondragenter="myFunction(event)"></div>

Coba sendiri

Ada banyak contoh TIY di bawah halaman.

Sintaksis

Pada HTML:

<elemen ondragenter="myScript">

Coba sendiri

Pada JavaScript:

objek.ondragenter = function(){myScript};

Coba sendiri

Pada JavaScript, gunakan metode addEventListener():

objek.addEventListener("dragenter", myScript);

Coba sendiri

Keterangan:Internet Explorer 8 atau versi yang lebih awal tidak mendukung method addEventListener()

Detil teknis

Bubbling: Didukung
Dapat dibatalkan: Didukung
Jenis event: DragEvent
Tanda tag HTML yang didukung: Semua elemen HTML
Versi DOM: Level 3 Events

Dukungan Browser

Angka di tabel menunjukkan versi browser pertama yang mendukung event ini.

Event Chrome IE Firefox Safari Opera
ondragenter 4.0 9.0 3.5 6.0 12.0

Beberapa contoh lain

Pertunjukan untuk semua event geser dan lepas yang mungkin:

<p draggable="true" id="dragtarget">Geser saya!</p>
<div class="droptarget">Guncang di sini!</div>
<script>
/* ----------------- Event yang diaktifkan di target geser ----------------- */
document.addEventListener("dragstart", function(event) {
  // Mengatur jenis dan nilai data yang diset di method dataTransfer.setData()
  event.dataTransfer.setData("Text", event.target.id);
  // Menampilkan beberapa teks saat elemen p mulai 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 me-reset 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 elemen p yang dapat diangkat memasuki droptarget, ubah gaya border DIV
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// Secara bawaan, data/elemen tidak dapat diletakkan di dalam elemen lain. Untuk memungkinkan penempatan, kita harus mencegah penggunaan bawaan elemen
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Saat elemen p yang dapat diangkat meninggalkan droptarget, reset gaya border DIV
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* Pada saat diletakkan - mencegah penggunaan bawaan browser untuk data (dengan membuka tautan saat menempatkan bawaan)
Reset warna teks output dan warna border DIV
Dapatkan data yang diangkat menggunakan metode dataTransfer.getData()
Data yang diangkat adalah id elemen yang diangkat ("drag1")
Tambahkan elemen yang dapat diangkat ke dalam elemen yang diletakkan
*/
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>

Coba sendiri

Halaman yang berhubungan

Pelatihan HTML: Pindah dan Letak HTML5

Referensi HTML: Properti HTML draggable