成都网站建设设计

将想法与焦点和您一起共享

CSS怎么实现CSS动画的暂停与播放

这篇文章主要讲解了“CSS怎么实现CSS动画的暂停与播放”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS怎么实现CSS动画的暂停与播放”吧!

成都创新互联10多年企业网站设计服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站设计及推广,对iso认证等多个领域拥有多年的网站运维经验的网站建设公司。

使用纯 CSS 的方法,能否暂停、播放 CSS 动画?看起来不可能,至少很麻烦。

我们知道,在 CSS3 animation 中,有这样一个属性可以暂停、播放动画:

{      animation-play-state: paused | running;  }

animation-play-state:  属性定义一个动画是否运行或者暂停。可以通过查询它来确定动画是否正在运行。另外,它的值可以被设置为暂停和恢复的动画的重放。

如果借助 Javascript,我们可以实现控制 CSS 动画的运行和播放,下面列出部分关键代码:

stop
  
  
document.querySelector('.btn').addEventListener('click', function() {      let btn = document.querySelector('.btn');      let elem = document.querySelector('.animation');      let state = elem.style['animationPlayState'];            if(state === 'paused') {          elem.style['animationPlayState'] = 'running';          btn.innerText = 'stop';      } else {          elem.style['animationPlayState'] = 'paused';          btn.innerText = 'play';      }        });

Demo — pause CSS Animation(https://codepen.io/Chokcoco/pen/GWYBdM)

纯 CSS 实现

下面我们探讨下,使用纯 CSS 的方式能否实现。

hover 伪类实现

使用 hover 伪类,在鼠标悬停在按钮上面时,控制动画样式的暂停。

关键代码如下:

stop
  
  

Demo — 纯 CSS 方式实现 CSS 动画的暂停与播放  (Hover):(https://codepen.io/Chokcoco/pen/PpxKBX)

当然,这个方法不够智能,如果释放鼠标的自由,点击一下暂停、再点击一下播放就好了。还有其他方法吗?

checked 伪类实现

之前的文章《有趣的 CSS 题目(8):纯CSS的导航栏Tab切换方案》也谈过,使用 radio 标签的 checked 伪类,加上 实现纯 CSS  捕获点击事情。

并且利用被点击的元素可以控制一些 CSS 样式。实现如下:

                    stop
                      play          

部分关键 CSS 代码:

.animation {      animation: move 2s linear infinite alternate;  }     #stop:checked ~ .animation {      animation-play-state: paused;  }     #play:checked ~ .animation {      animation-play-state: running;  }

我们希望当 #stop 和 #play 两个 radio 被点击时,给 .animation 元素分别赋予 animation-play-state:  paused 或是 animation-play-state: running 。而且二者只能生效其一,所以需要给两个 radio 标签赋予相同的 name  属性。

DEMO — 纯 CSS 方式实现 CSS 动画的暂停与播放:(https://codepen.io/Chokcoco/pen/QpJwBW)

上面的示例 Demo 中,实现了纯 CSS 方式实现 CSS 动画的暂停与播放。

当然,还有一些其他方法,例如 radio 替换成 checkbox ,或者使用 :target  伪类选择器也能实现上面同样的效果,感兴趣的可以尝试一下。

感谢各位的阅读,以上就是“CSS怎么实现CSS动画的暂停与播放”的内容了,经过本文的学习后,相信大家对CSS怎么实现CSS动画的暂停与播放这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


新闻名称:CSS怎么实现CSS动画的暂停与播放
网站URL:http://chengdu.cdxwcx.cn/article/pjcicg.html