Maison > interface Web > tutoriel CSS > JavaScript peut-il vraiment simuler un effet CSS :hover sans interaction avec la souris ?

JavaScript peut-il vraiment simuler un effet CSS :hover sans interaction avec la souris ?

Patricia Arquette
Libérer: 2024-12-28 03:31:13
original
813 Les gens l'ont consulté

Can JavaScript Truly Simulate a CSS :hover Effect Without Mouse Interaction?

Simulation d'un effet de survol CSS via JavaScript

Question :

Est-il possible d'utiliser du JavaScript pur pour imiter un CSS Effet ":hover", activant les règles CSS associées sans réellement déclencher un survol de la souris événement ?

Problèmes rencontrés :

  • Malgré l'ajout d'un écouteur d'événement au survol de la souris, la déclaration de survol CSS reste inactive.
  • Tentative d'ajout manuel la classe "hover" via JavaScript (par exemple, theElement.classList.add("hover")) ne le fait pas déclencher les effets visuels souhaités.

Réponse :

Malheureusement, simuler un véritable événement de survol de la souris en JavaScript pur n'est pas réalisable en raison de la nature des événements fiables.

Dans les navigateurs Web, certains événements, tels que ceux déclenchés par l'interaction de l'utilisateur, sont considérés comme fiables. À l'inverse, les événements générés par JavaScript, comme celui que vous essayez de simuler, ne sont pas fiables. Les événements non fiables ne peuvent pas effectuer certaines actions, notamment le déclenchement d'actions par défaut pour la plupart des éléments HTML (comme l'effet de survol).

Solution :

La seule option viable consiste à effectuer manuellement gérez l'effet de survol en ajoutant et en supprimant une classe sur l'élément cible à l'aide des écouteurs d'événements mouseover et mouseout, respectivement. Voici un exemple :

const hoverElement = document.querySelector("selector");

hoverElement.addEventListener("mouseover", () => {
  hoverElement.classList.add("hover");
});

hoverElement.addEventListener("mouseout", () => {
  hoverElement.classList.remove("hover");
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal