1. 什么是CSS3的animation动画
CSS3动画是CSS3的新特性,它是一组实现动画效果所需的方法和属性。它逐帧地渲染关键帧(即动画的不同阶段),并为CSS属性指定动画效果。
2. 如何让CSS3的animation动画停止
当我们需要动画停止时,可以使用CSS3中的animation-play-state属性来控制动画的播放和暂停。animation-play-state属性有两个值,paused(暂停)和running(播放),默认值为running。当属性的值为paused时,动画就会暂停。
2.1 animation-play-state属性的含义
animation-play-state属性用于控制动画的状态,有以下两个值:
running:表示动画正在播放
paused:表示动画已暂停
可以通过以下代码为动画设置animation-play-state属性:
.div{
animation-play-state: running | paused;
}
2.2 实现动态控制animation-play-state属性的方法
除了直接设置animation-play-state属性,我们还可以通过JavaScript代码来动态控制动画的播放和暂停。
首先,我们可以通过document.querySelector()方法获取元素,然后通过style属性来设置animation-play-state属性的值,如下所示:
// 获取元素
var ele = document.querySelector(".div");
// 暂停动画
ele.style.animationPlayState = "paused";
// 恢复动画
ele.style.animationPlayState = "running";
除此之外,我们还可以使用classList.toggle()方法来动态切换该元素的类名,从而改变动画的播放状态,如下所示:
// 获取元素
var ele = document.querySelector(".div");
// 增加类名,播放动画
ele.classList.add("play");
// 切换类名,暂停动画
ele.classList.toggle("play");
3. 完整示例
下面是一个完整的CSS3动画控制示例。点击“暂停”按钮可以停止动画,点击“播放”按钮可以恢复动画。
<style>
.box {
width: 100px;
height: 100px;
background-color: #f00;
animation: move 2s linear infinite;
}
.play{
animation-play-state: paused;
}
@keyframes move {
0% {
transform: translateX(0);
}
50% {
transform: translateX(200px) rotate(180deg);
}
100% {
transform: translateX(0);
}
}
</style>
<div class="box" id="box"></div>
<button onclick="pause()">暂停</button>
<button onclick="play()">播放</button>
<script>
var ele = document.querySelector("#box");
function pause(){
ele.classList.add("play");
}
function play(){
ele.classList.toggle("play");
}
</script>
以上示例中,.play类设置animation-play-state属性的值为paused,点击暂停按钮时,通过将该类添加到.box元素上来暂停动画;点击播放按钮时,通过切换该类名的方式来恢复动画。
总结
以上就是CSS3如何让animation动画停止的方法。通过设置animation-play-state属性或JavaScript代码来动态控制动画的播放和暂停,可以实现更加灵活、生动的网页动画效果。