Di chuyển chuột JavaScript
Sự kiện 2 xảy ra khi con trỏ chuột đi qua một phần tử và 3 – khi nó rời khỏi Show Những sự kiện này rất đặc biệt, bởi vì chúng có thuộc tính 4. Tài sản này bổ sung cho 5. Khi một con chuột rời khỏi phần tử này để chuyển sang phần tử khác, một trong số chúng sẽ trở thành 5 và phần tử còn lại – 4Cho 2
Đối với 3 thì ngược lại
Trong ví dụ bên dưới, mỗi khuôn mặt và các đặc điểm của nó là các phần tử riêng biệt. Khi bạn di chuyển chuột, bạn có thể thấy các sự kiện chuột trong vùng văn bản Mỗi sự kiện có thông tin về cả 5 và 4Kết quả script. js Phong cách. css mục lục. html
Thuộc tính 4 có thể là 1Điều đó là bình thường và chỉ có nghĩa là con chuột không đến từ phần tử khác mà từ bên ngoài cửa sổ. Hoặc nó rời khỏi cửa sổ Chúng ta nên ghi nhớ khả năng đó khi sử dụng 0 trong mã của mình. Nếu chúng ta truy cập vào 5 thì sẽ xảy ra lỗiSự kiện 6 kích hoạt khi chuột di chuyển. Nhưng điều đó không có nghĩa là mọi pixel đều dẫn đến một sự kiệnTrình duyệt thỉnh thoảng kiểm tra vị trí chuột. Và nếu nó nhận thấy những thay đổi thì sẽ kích hoạt các sự kiện Điều đó có nghĩa là nếu khách truy cập di chuyển chuột rất nhanh thì một số phần tử DOM có thể bị bỏ qua Nếu chuột di chuyển rất nhanh từ các phần tử 7 đến 8 như được vẽ ở trên, thì phần tử trung gian 9 (hoặc một số trong số chúng) có thể bị bỏ qua. Sự kiện 3 có thể kích hoạt vào ngày 7 và sau đó ngay lập tức vào ngày 2 vào ngày 8Điều đó tốt cho hiệu suất, vì có thể có nhiều yếu tố trung gian. Chúng tôi không thực sự muốn xử lý từng cái một Mặt khác, chúng ta nên nhớ rằng con trỏ chuột không “ghé thăm” tất cả các phần tử trên đường đi. Nó có thể nhảy" Đặc biệt, có thể con trỏ nhảy ngay vào giữa trang từ bên ngoài cửa sổ. Trong trường hợp đó, 4 là 1, bởi vì nó đến từ “hư không”Bạn có thể kiểm tra nó "trực tiếp" trên một giá đỡ bên dưới HTML của nó có hai phần tử lồng nhau. 6 ở bên trong 7. Nếu bạn di chuyển chuột nhanh qua chúng, thì có thể chỉ có div con kích hoạt sự kiện hoặc có thể div cha hoặc có thể sẽ không có sự kiện nào cảĐồng thời di chuyển con trỏ vào phần tử con 8, sau đó nhanh chóng di chuyển con trỏ ra ngoài qua phần gốc. Nếu chuyển động đủ nhanh thì bỏ qua phần tử cha. Con chuột sẽ vượt qua phần tử cha mà không nhận thấy nóKết quả script. js Phong cách. css Có thể bạn quan tâmmục lục. html ________số 8_______
Nếu kích hoạt Trong trường hợp di chuyển chuột nhanh, các yếu tố trung gian có thể bị bỏ qua, nhưng có một điều chúng tôi biết chắc chắn. nếu con trỏ “chính thức” nhập một phần tử (sự kiện ______0_______2 được tạo), thì khi rời khỏi phần tử đó, chúng ta luôn nhận được ____0_______3 Một tính năng quan trọng của 3 – nó kích hoạt, khi con trỏ di chuyển từ một phần tử sang phần tử con của nó, e. g. từ 4 đến 5 trong HTML này
Nếu chúng ta đang ở trên 4 và sau đó di chuyển con trỏ sâu hơn vào trong 5, chúng ta sẽ nhận được 3 trên 4Điều đó có vẻ lạ, nhưng có thể dễ dàng giải thích Theo logic của trình duyệt, con trỏ chuột có thể chỉ ở trên một phần tử bất kỳ lúc nào – phần tử được lồng nhiều nhất và trên cùng bởi chỉ mục z Vì vậy, nếu nó chuyển sang phần tử khác (thậm chí là phần tử con), thì nó sẽ rời khỏi phần tử trước đó Xin lưu ý một chi tiết quan trọng khác của xử lý sự kiện Sự kiện 2 về hậu duệ nổi lên. Vì vậy, nếu 4 có trình xử lý 2, nó sẽ kích hoạtBạn có thể thấy điều đó rất rõ trong ví dụ dưới đây. 6 ở bên trong 7. Có trình xử lý 5 trên phần tử 4 xuất chi tiết sự kiệnNếu bạn di chuyển chuột từ 4 đến 5, bạn sẽ thấy hai sự kiện trên 4
Kết quả script. js Phong cách. css mục lục. html
Như được hiển thị, khi con trỏ di chuyển từ phần tử 4 sang phần tử 5, hai trình xử lý sẽ kích hoạt phần tử cha. 3 và 2 0Nếu chúng ta không kiểm tra 9 bên trong bộ xử lý, thì có vẻ như con trỏ chuột đã rời khỏi phần tử 4 và sau đó ngay lập tức quay lại phần tử đóNhưng đó không phải là trường hợp. Con trỏ vẫn ở trên phần tử cha, nó chỉ di chuyển sâu hơn vào phần tử con Nếu có một số hành động khi rời khỏi phần tử cha, e. g. một hoạt ảnh chạy trong 8, chúng tôi thường không muốn nó khi con trỏ chỉ đi sâu hơn vào 4Để tránh điều đó xảy ra, chúng ta có thể kiểm tra 4 trong trình xử lý và nếu con chuột vẫn ở bên trong phần tử thì hãy bỏ qua sự kiện đóNgoài ra, chúng ta có thể sử dụng các sự kiện khác. 1 và 2, mà chúng tôi sẽ đề cập ngay bây giờ, vì họ không gặp phải những vấn đề như vậySự kiện 3 giống như 4. Chúng kích hoạt khi con trỏ chuột vào/ra khỏi phần tửNhưng có hai sự khác biệt quan trọng
Những sự kiện này cực kỳ đơn giản Khi con trỏ vào một phần tử – 1 kích hoạt. Vị trí chính xác của con trỏ bên trong phần tử hoặc con trỏ của nó không quan trọngKhi con trỏ rời khỏi phần tử – 2 kích hoạtVí dụ này tương tự như ví dụ trên, nhưng bây giờ phần tử trên cùng có 3 thay vì 4Như bạn có thể thấy, các sự kiện được tạo duy nhất là những sự kiện liên quan đến việc di chuyển con trỏ vào và ra khỏi phần tử trên cùng. Không có gì xảy ra khi con trỏ đi tới đứa trẻ và quay lại. Chuyển tiếp giữa con cháu bị bỏ qua Kết quả script. js Phong cách. css mục lục. html
3Sự kiện 00 rất đơn giản và dễ sử dụng. Nhưng họ không bong bóng. Vì vậy, chúng tôi không thể sử dụng ủy quyền sự kiện với họHãy tưởng tượng chúng ta muốn xử lý nhập/rời chuột cho các ô của bảng. Và có hàng trăm tế bào Giải pháp tự nhiên sẽ là – đặt trình xử lý trên 01 và xử lý các sự kiện ở đó. Nhưng 00 đừng nổi bong bóng. Vì vậy, nếu sự kiện như vậy xảy ra vào ngày 03, thì chỉ người xử lý trên ngày 03 đó mới có thể bắt được sự kiện đóTrình xử lý cho 00 trên 01 chỉ kích hoạt khi con trỏ vào/rời khỏi toàn bộ bảng. Không thể lấy bất kỳ thông tin nào về quá trình chuyển đổi bên trong nóVì vậy, hãy sử dụng 4Hãy bắt đầu với các trình xử lý đơn giản làm nổi bật phần tử dưới chuột 4Ở đây họ đang hành động. Khi chuột di chuyển qua các phần tử của bảng này, phần hiện tại được tô sáng Kết quả script. js Phong cách. css mục lục. html 5 6 7Trong trường hợp của chúng tôi, chúng tôi muốn xử lý các chuyển đổi giữa các ô của bảng 03. vào một ô và rời khỏi nó. Các chuyển đổi khác, chẳng hạn như bên trong ô hoặc bên ngoài bất kỳ ô nào, chúng tôi không quan tâm. Hãy lọc chúng raĐây là những gì chúng ta có thể làm
Đây là một ví dụ về mã giải thích cho tất cả các tình huống có thể xảy ra 8Một lần nữa, các tính năng quan trọng là
Đây là ví dụ đầy đủ với tất cả các chi tiết Kết quả script. js Phong cách. css mục lục. html 8 6 7Cố gắng di chuyển con trỏ vào và ra khỏi các ô của bảng và bên trong chúng. Nhanh hay chậm - không quan trọng. Chỉ toàn bộ 03 được tô sáng, không giống như ví dụ trướcChúng tôi đưa tin về các sự kiện 2, 3, 6, 1 và 2Những điều này là tốt để lưu ý
Sự kiện 5 kích hoạt ngay cả khi chúng ta chuyển từ phần tử cha sang phần tử con. Trình duyệt giả định rằng chuột chỉ có thể ở trên một phần tử tại một thời điểm - phần tử sâu nhấtSự kiện 00 khác ở khía cạnh đó. chúng chỉ kích hoạt khi chuột ra vào toàn bộ phần tử. Ngoài ra họ không bong bóng
Làm cách nào để di chuyển con trỏ chuột bằng JavaScript?Bạn không thể di chuyển con trỏ chuột bằng cách sử dụng javascript và do đó rõ ràng là vì lý do bảo mật. Cách tốt nhất để đạt được hiệu ứng này là thực sự đặt điều khiển dưới con trỏ chuột. Ý nghĩa bảo mật là xa rõ ràng.
Làm cách nào để có được vị trí của con trỏ trong JavaScript?Sử dụng sự kiện.
Thuộc tính clientX được sử dụng để tìm giá trị của vị trí nằm ngang hoặc tọa độ X của con trỏ nơi sự kiện được kích hoạt . Nó trả về một giá trị số xác định vị trí nằm ngang của con trỏ.
Sự khác biệt giữa di chuột qua và MouseMove trong JavaScript là gì?Sự kiện di chuột qua kích hoạt khi con trỏ chuột đi vào phần tử div và các phần tử con của nó. Sự kiện mouseenter chỉ được kích hoạt khi con trỏ chuột đi vào phần tử div . Sự kiện onmousemove kích hoạt mỗi khi con trỏ chuột được di chuyển qua phần tử div.
Onmousemove có nghĩa là gì trong JavaScript?onmousemove. Con trỏ đang di chuyển qua phần tử . onmouseout. Con trỏ chuột di chuyển ra khỏi phần tử. |