Sự kiện rời chuột onmouseout trong Javascript
Trong bài này chúng ta sẽ tìm hiểu sự kiện rời chuột trong Javascript, hay còn gọi là sự kiện onmouseout. Nó giúp ta biết được người dùng đã di chuyển chuột ra khỏi phần tử hay chưa.
Giả sử bạn cần xây dựng chức năng khi người dùng rời chuột khỏi một ô dữ liệu nào đó thì có thể sử dụng onmouseout. Ta thường kết hợp với sự kiện hover để biết được khi nào thì con trỏ chuột đi vào và khi nào thì đi ra.
1. Sự kiện di chuyển chuột ra ngoài trong Javascript là gì?
Đây là sự kiện khi người dùng di chuyển con trỏ chuột ra ngoài phạm vi hiển thị của thẻ HTMl. Ta sẽ bắt sự kiện này và xử lý theo yêu cầu của từng bài toán.
Trong lập trình web chúng ta rất ít khi sử dụng. Nhưng khi lập trình web game thì sử dụng khá nhiều.
Bài viết này được đăng tại [free tuts .net]
2. Cách thêm sự kiện rời chuột onmouseout trong Javascript
Để thêm sự kiện onmouseout vào một thẻ HTML nào đó thì ta có một số cách như sau:
Cách 1: Thêm trực tiếp trong thẻ HTML
<input type="button" onmouseout="callMouseOutEvent()" value="Di chuyển vào đây"/> <script> function callMouseOutEvent(){ alert('Bạn đã di chuyển chuột ra ngoài thẻ input'); } </script>
Cách 2: Gắn hàm vào sự kiện onmouseout bằng mã Javascript
<input type="button" id="btn" value="Di chuyển vào đây"/> <script> var obj = document.getElementById('btn'); obj.onmouseout = function(){ alert('Bạn đã di chuyển chuột ra ngoài thẻ input'); }; </script>
Hoặc sử dụng hàm addEventListener.
<input type="button" id="btn" value="Di chuyển vào đây"/> <script> var obj = document.getElementById('btn'); obj.addEventListener('mouseout', function(){ alert('Bạn đã di chuyển chuột ra ngoài thẻ input'); }); </script>
2. Một ví dụ kết hợp onmouseout và onmouseover trong Javascript
Bây giờ ta sẽ làm một ví dụ khá đơn giản như sau: Cho một thẻ div có chiều rộng và chiều cao lần lượt là 500px và 100px, hãy:
- Thiết lập background màu xanh khi di chuyển con trỏ vào trong thẻ div
- Thiết lập background màu đỏ khi di chuyển con trỏ ra ngoài.
<div id="div_wrapper" style="width: 500px; height: 200px; background: red"> </div> <script> var obj = document.getElementById('div_wrapper'); obj.addEventListener('mouseout', function(){ obj.style.background = 'red'; }); obj.addEventListener('mouseover', function(){ obj.style.background = 'blue'; }); </script>
Bài này mình có kết hợp thêm sự kiện onmouseover để bắt sự kiện di chuyển con trỏ chuột vào trong thẻ div.