Cara Kerja MouseOver dan MouseOut dalam Interaksi Pengguna
Saat berinteraksi dengan halaman web, pengguna sering kali menggerakkan mouse di atas elemen tertentu. JavaScript menyediakan event MouseOver dan MouseOut untuk menangkap interaksi ini. Event ini berguna untuk berbagai efek seperti animasi hover, perubahan warna, tooltip, atau elemen interaktif lainnya.
Dalam artikel ini, kita akan membahas perbedaan MouseOver dan MouseOut, cara menggunakannya, serta contoh implementasinya untuk meningkatkan pengalaman pengguna.
Perbedaan MouseOver dan MouseOut
Event | Kapan Dipicu? | Berpengaruh ke Child Element? |
---|---|---|
mouseover |
Saat mouse masuk ke dalam elemen | ✅ Ya, akan dipicu setiap kali masuk ke child element |
mouseout |
Saat mouse keluar dari elemen | ✅ Ya, akan dipicu setiap kali keluar dari child element |
Catatan: Jika ingin menangani event hanya pada elemen utama tanpa mempengaruhi child, gunakanmouseenter
danmouseleave
sebagai alternatif.
Cara Menggunakan MouseOver dan MouseOut
Kita bisa menangkap event ini menggunakan addEventListener()
atau atribut event langsung di HTML.
1. Menangani MouseOver dan MouseOut dengan JavaScript
Contoh sederhana untuk mengubah warna elemen saat mouse berada di atasnya:
<div id="box" style="width: 200px; height: 100px; background-color: lightgray; text-align: center; line-height: 100px;">
Arahkan Mouse ke Sini
</div>
document.getElementById("box").addEventListener("mouseover", function() {
this.style.backgroundColor = "blue";
this.style.color = "white";
this.textContent = "Mouse di atas!";
});
document.getElementById("box").addEventListener("mouseout", function() {
this.style.backgroundColor = "lightgray";
this.style.color = "black";
this.textContent = "Arahkan Mouse ke Sini";
});
Saat mouse berada di atas elemen, warna latar akan berubah menjadi biru dan teks akan diperbarui. Saat mouse keluar, warna dan teks akan kembali seperti semula.
2. Menggunakan MouseOver untuk Menampilkan Tooltip
Tooltip adalah teks kecil yang muncul saat pengguna mengarahkan mouse ke elemen tertentu.
<button id="btn">Hover untuk Info</button>
<div id="tooltip" style="display: none; position: absolute; background: black; color: white; padding: 5px; border-radius: 5px;">
Ini adalah tooltip!
</div>
const btn = document.getElementById("btn");
const tooltip = document.getElementById("tooltip");
btn.addEventListener("mouseover", function(event) {
tooltip.style.display = "block";
tooltip.style.left = event.pageX + "px";
tooltip.style.top = event.pageY + "px";
});
btn.addEventListener("mouseout", function() {
tooltip.style.display = "none";
});
Saat mouse diarahkan ke tombol, tooltip akan muncul. Saat mouse keluar, tooltip akan disembunyikan kembali.
3. Menggunakan MouseOver dan MouseOut untuk Menu Dropdown
Menu dropdown adalah contoh lain di mana mouseover
dan mouseout
sering digunakan.
<div id="menu">
<button id="menuBtn">Menu</button>
<ul id="dropdown" style="display: none; position: absolute; background: white; border: 1px solid gray; padding: 10px;">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
const menu = document.getElementById("menu");
const dropdown = document.getElementById("dropdown");
menu.addEventListener("mouseover", function() {
dropdown.style.display = "block";
});
menu.addEventListener("mouseout", function() {
dropdown.style.display = "none";
});
Saat mouse berada di atas menu, dropdown akan muncul. Saat mouse keluar, dropdown akan disembunyikan kembali.
Menggunakan MouseEnter dan MouseLeave Sebagai Alternatif
Jika ingin menangani event tanpa mempengaruhi child element, gunakan mouseenter dan mouseleave.
document.getElementById("box").addEventListener("mouseenter", function() {
this.style.backgroundColor = "green";
});
document.getElementById("box").addEventListener("mouseleave", function() {
this.style.backgroundColor = "lightgray";
});
Dengan mouseenter
dan mouseleave
, event hanya dipicu satu kali saat mouse masuk atau keluar dari elemen utama, tanpa memperhitungkan child element.
Kapan Menggunakan MouseOver dan MouseOut?
✅ Gunakan MouseOver dan MouseOut jika ingin menangani interaksi hover yang melibatkan child element seperti submenu atau efek kompleks.
✅ Gunakan MouseEnter dan MouseLeave jika hanya ingin menangani event pada elemen utama tanpa mempengaruhi child.
✅ Gunakan MouseOver untuk menampilkan tooltip, efek hover, atau animasi interaktif.
✅ Gunakan MouseOut untuk menyembunyikan tooltip, dropdown, atau efek lainnya saat mouse keluar dari area elemen.
Kesimpulan
- MouseOver dan MouseOut digunakan untuk menangkap pergerakan mouse di atas elemen dan keluar dari elemen.
- MouseOver dipicu setiap kali mouse masuk ke elemen atau child-nya, sementara MouseOut dipicu saat mouse keluar dari elemen atau child-nya.
- Jika hanya ingin menangkap event pada elemen utama tanpa child, gunakan MouseEnter dan MouseLeave.
- Event ini berguna untuk efek visual, tooltip, dropdown, dan interaksi pengguna lainnya.
Dengan memahami cara kerja MouseOver dan MouseOut, kita bisa menciptakan efek hover yang lebih dinamis dan interaktif dalam aplikasi web!