Maison >interface Web >tutoriel CSS >Comment puis-je forcer l'achèvement des animations de survol CSS3 ?

Comment puis-je forcer l'achèvement des animations de survol CSS3 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 03:32:11573parcourir

How Can I Force Completion of CSS3 Hover Animations?

Forcer l'achèvement des animations CSS3 au survol

Lors de l'application d'une animation CSS3 à l'état :hover, l'animation s'arrête brusquement à la sortie de l'élément . Ce comportement peut être indésirable, en particulier pour les animations qui nécessitent un nombre spécifique d'itérations pour s'exécuter. Pour résoudre ce problème, envisagez les stratégies suivantes :

Utilisation de JavaScript :

La solution la plus directe consiste à utiliser JavaScript pour forcer l'achèvement de l'animation. Ceci peut être réalisé en ajoutant et en supprimant dynamiquement des classes d'animation via des écouteurs d'événements.

$(".element").hover(
  function() { $(this).addClass("animation-name"); },
  function() { $(this).removeClass("animation-name"); }
);

Utilisation des images clés CSS :

Bien qu'il n'existe actuellement aucune solution CSS uniquement qui force directement l'achèvement de l'animation au survol, une technique consiste à créer une image clé factice qui s'étend au-delà de l'animation au survol durée.

@keyframes bounce {
  ... (Original animation keyframes) ...
  99% { transform: translate(0, 0); }
  100% { transform: translate(0, 0); }
}

En prolongeant légèrement la durée de l'image clé, l'animation continuera jusqu'à son achèvement même après la fin de l'état de survol.

Mises en garde potentielles :

Il est important de noter que forcer la fin de l'animation peut introduire des artefacts visuels dans certains cas. Par exemple, si l'animation contient des éléments en rotation, des arrêts ou des sauts brusques peuvent se produire lorsque la souris quitte l'élément.

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!

Déclaration:
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