Maison > interface Web > tutoriel CSS > Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de l'animation CSS ? Introduction à la propriété animation-play-state (explication détaillée)

Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de l'animation CSS ? Introduction à la propriété animation-play-state (explication détaillée)

青灯夜游
Libérer: 2018-09-15 15:44:10
original
3862 Les gens l'ont consulté

Mettez en pause ou lisez des animations CSS en utilisant des méthodes CSS pures. Cela semble-t-il impossible à réaliser ? Ou même si cela peut être réalisé, il s'agit d'une méthode d'implémentation très fastidieuse qui nécessite beaucoup de styles CSS. En fait, ce n'est pas le cas. Dans l'animation CSS3, il existe une propriété permettant de mettre en pause et de lire des animations. Ce chapitre vous présentera comment utiliser du CSS pur pour obtenir les effets de pause et de lecture des animations CSS ? Introduction à la propriété animation-play-state (explication détaillée) . Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

attribut animation-play-state

 animation-play-state: paused | running;
Copier après la connexion

animation-play-state : l'attribut définit si une animation est en cours d'exécution ou fait une pause. Vous pouvez l'interroger pour déterminer si l'animation est en cours d'exécution. De plus, sa valeur peut être définie pour mettre en pause et reprendre la relecture de l'animation.

Avec l'aide de Javascript, nous pouvons contrôler l'exécution et la lecture des animations CSS. Certains codes clés sont répertoriés ci-dessous :

code html :

<div class="btn">stop</div> 
<div class="animation"></div>
Copier après la connexion

code css. :

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}
Copier après la connexion

code js :

document.querySelector(&#39;.btn&#39;).addEventListener(&#39;click&#39;, function() {
    let btn = document.querySelector(&#39;.btn&#39;);
    let elem = document.querySelector(&#39;.animation&#39;);
    let state = elem.style[&#39;animationPlayState&#39;];
    
    if(state === &#39;paused&#39;) {
        elem.style[&#39;animationPlayState&#39;] = &#39;running&#39;;
        btn.innerText = &#39;stop&#39;;
    } else {
        elem.style[&#39;animationPlayState&#39;] = &#39;paused&#39;;
        btn.innerText = &#39;play&#39;;
    }
    
});
Copier après la connexion

Rendu (pendant la lecture et après l'arrêt de la lecture) :

Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)

Implémentation CSS pure

Voyons si cela peut être réalisé en utilisant du CSS pur.

Implémentation de la pseudo-classe de survol

Utilisez la pseudo-classe de survol pour contrôler la pause du style d'animation lorsque la souris survole le bouton.

Les codes clés sont les suivants :

Code html :

<div class="btn stop">stop</div> 
<div class="animation"></div>
Copier après la connexion

Code css :

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

.stop:hover ~ .animation {
    animation-play-state: paused;
}
Copier après la connexion

Rendu :

Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)

Bien sûr, cette méthode n'est pas assez intelligente. Si vous relâchez la liberté de la souris, cliquez une fois pour mettre en pause puis cliquez à nouveau pour jouer. Existe-t-il d'autres méthodes ?

implémentation vérifiée de la pseudo-classe

L'article précédent "Sujet CSS intéressant (8) : Solution de commutation d'onglets de barre de navigation CSS pure" est également As mentionné, en utilisant la pseudo-classe vérifiée de la balise radio, et en implémentant du CSS pur pour capturer les événements de clic.

Et vous pouvez contrôler certains styles CSS en utilisant l'élément cliqué. La mise en œuvre est la suivante :

code html :

<input id="stop" type="radio" name="playAnimation"/>
<input id="play" type="radio" name="playAnimation"/>

<div class="box">
    <label for="stop">
        <div class="btn">stop</div>
    </label>
    <label for="play">
        <div class="btn">play</div>
    </label>
</div>

<div class="animation"></div>
Copier après la connexion

code css :

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

#stop:checked ~ .animation {
    animation-play-state: paused;
}

#play:checked ~ .animation {
    animation-play-state: running;
}
Copier après la connexion

Nous espérons que lorsque #stop et # jouer deux radios Lorsque vous cliquez dessus, attribuez animation-play-state: paused ou animation-play-state: running à l'élément .animation respectivement. Et un seul des deux peut prendre effet, les deux balises radio doivent donc recevoir le même attribut de nom.

Rendu :

Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)Comment utiliser du CSS pur pour obtenir les effets de pause et de lecture de lanimation CSS ? Introduction à la propriété animation-play-state (explication détaillée)

Dans l'exemple ci-dessus, du CSS pur est utilisé pour mettre en pause et lire l'animation CSS.

Bien sûr, il existe d'autres méthodes, comme remplacer la radio par une case à cocher, ou utiliser le sélecteur de pseudo-classe :target pour obtenir le même effet que ci-dessus. Si vous êtes intéressé, vous pouvez l'essayer.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal