css动画是可以暂停的

本文介绍CSS中的animation-play-state属性,该属性允许开发者控制动画的播放状态,实现动画的暂停与恢复。通过设置此属性,结合JavaScript,可以实现对动画状态的精准控制。

CSS中animation 大家经常会用到,但是布吉岛有没有和我一样的童鞋刚知道这个动画是可以暂停的。

没错,就是这个属性animation-play-state,它有两个可选值分别是播放动画running和暂停动画paused,默认这个属性是running状态并且不能使用animation缩写形式。下面来看看效果:

这里就是在hover的时候设置了这个属性


.box:hover {
    background:url(./low_hover.jpg) center no-repeat;
    animation-play-state: paused;
}

突然想到之前写项目的时候,使用css写动画,js无法判断是否动画结束只好放弃css动画改用js动画(留下了没有技术的眼泪…),既然知道了这个属性,我们就可以通过js判断这个属性的值判断动画是否结束。


let boxEl = document.querySelector('.box')
console.log(window.getComputedStyle(boxEl,null).animationPlayState) // paused / running

最后,感谢点赞,感谢阅读!

如果文章让你有收获,欢迎关注公众号,每日推送优质文章!!!

### 实现 CSS 动画暂停的方法 在 CSS 中,可以通过 `animation-play-state` 属性来控制动画的播放与暂停状态。该属性允许开发者暂停在运行的动画,也可以恢复已暂停动画,且动画会从暂停的位置继续执行,而不是从头开始[^3]。 以下是一个实现 CSS 动画暂停的示例: ```css .pauseable-animation { animation: rotateAnimation 5s linear infinite; } .pauseable-animation:hover { animation-play-state: paused; } ``` ```html <div class="pauseable-animation">悬停时暂停动画</div> ``` 上述代码中,`.pauseable-animation` 定义了一个无限循环的旋转动画。当鼠标悬停在该元素上时,通过 `animation-play-state: paused` 使动画暂停[^3]。 除了通过悬停触发动画暂停,还可以通过按钮点击事件来控制动画的播放与暂停状态。例如,使用一组单选按钮来切换动画状态: ```css .animation { animation: slideAnimation 4s linear infinite; } #pause:checked ~ .animation { animation-play-state: paused; } #play:checked ~ .animation { animation-play-state: running; } ``` ```html <input type="radio" id="play" name="control" checked> <label for="play">播放</label> <input type="radio" id="pause" name="control"> <label for="pause">暂停</label> <div class="animation">点击按钮控制动画播放/暂停</div> ``` 在这个例子中,当 `#pause` 被选中时,`.animation` 元素的动画将被暂停;当 `#play` 被选中时,动画将恢复播放[^4]。 ### 注意事项 - `animation-play-state` 是 CSS 动画中直接提供的控制动画暂停的样式属性,开发者可以利用它实现灵活的动画控制逻辑[^1]。 - 在实际开发中,建议为不同浏览器添加前缀以确保兼容性,例如 `-webkit-animation-play-state`、`-moz-animation-play-state` 等。 - 动画暂停后恢复播放时,是从暂停的位置继续执行,而不是从动画起点重新开始。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值