首頁 >web前端 >js教程 >為什麼類比滑鼠懸停在 Chrome 中不會觸發 CSS 懸停?

為什麼類比滑鼠懸停在 Chrome 中不會觸發 CSS 懸停?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 21:26:02576瀏覽

Why Doesn't Simulated Mouseover Trigger CSS Hover in Chrome?

在JavaScript 中模擬滑鼠懸停:澄清差異並實現手動控制

嘗試在Chrome 中您可能遇到了一個有趣的問題問題。儘管“mouseover”事件監聽器已成功激活,但相應的CSS“hover”聲明並未生效。此外,嘗試在滑鼠懸停偵聽器中使用 classList.add("hover") 修改元素的類別清單也無法觸發所需的 CSS 變更。

關鍵在於理解可信事件和不可信事件之間的區別。根據瀏覽器的安全協議,源自使用者互動或 DOM 修改的某些事件被視為可信,而由 JavaScript 發起的事件則被歸類為不可信。懸停事件屬於後者。

由於其不受信任的性質,懸停事件無法直接觸發預定的 CSS 操作。這是一種保護措施,旨在防止惡意腳本修改頁面行為的關鍵方面。

因此,為了使用 JavaScript 實作所需的懸停效果,需要另一種方法。當滑鼠懸停和滑鼠懸停事件發生時,您可以手動新增和刪除自訂類別(例如「懸停」),而不是依賴本機懸停事件。這將使您能夠自行控制與「懸停」狀態相關的 CSS 變更。

以上是為什麼類比滑鼠懸停在 Chrome 中不會觸發 CSS 懸停?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn