Maison > interface Web > tutoriel CSS > Comment puis-je suspendre et reprendre les animations CSS3 en utilisant uniquement JavaScript ?

Comment puis-je suspendre et reprendre les animations CSS3 en utilisant uniquement JavaScript ?

Linda Hamilton
Libérer: 2024-12-07 10:43:11
original
688 Les gens l'ont consulté

How Can I Pause and Resume CSS3 Animations Using Only JavaScript?

Pause et reprise de l'animation CSS3 avec JavaScript

Problème :

Comment mettre en pause et reprendre une animation CSS3 utilisant JavaScript sans recourir à des outils externes bibliothèques ?

Solution :

  1. Animation CSS :

Définir l'animation à l'aide d'images clés CSS, en spécifiant les valeurs d'opacité et le timing pour chaque étape.

  1. Pause et fonctions de reprise :

Créez des fonctions JavaScript pour gérer la pause et la reprise de l'animation :

const pauseAnimation = (element) => {
  element.style.animationPlayState = "paused";
};

const resumeAnimation = (element) => {
  element.style.animationPlayState = "running";
};
Copier après la connexion
  1. Écouteurs d'événements :

Ajouter des écouteurs d'événements aux éléments animés pour déclencher la pause et la reprise actions :

document.getElementById("pic1").addEventListener("click", () => {
  pauseAnimation(document.getElementById("pic1"));
});

document.getElementById("pic2").addEventListener("click", () => {
  resumeAnimation(document.getElementById("pic2"));
});
Copier après la connexion

Remarques supplémentaires :

  • Pour vous assurer que l'animation peut être mise en pause plusieurs fois, effacez les écouteurs d'événements existants avant d'en ajouter de nouveaux.
  • Vous pouvez également utiliser l'approche de classe CSS proposée dans le réponse :
.paused{
    -webkit-animation-play-state:paused;
    -moz-animation-play-state:paused;
    -o-animation-play-state:paused; 
    animation-play-state:paused;
}
Copier après la connexion
const pauseAnimation = (element) => {
  element.classList.add("paused");
};

const resumeAnimation = (element) => {
  element.classList.remove("paused");
};
Copier après la connexion

Cela vous permet de mettre en pause et de reprendre l'animation en basculant simplement cette classe CSS sans avoir besoin d'écouteurs d'événements.

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