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.

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

1
2
3
4
5
6
<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

1
2
3
4
5
6
7
<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.

1
2
3
4
5
6
7
<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.
1
2
3
4
5
6
7
8
9
10
11
12
<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>