专业编程基础技术教程

网站首页 > 基础教程 正文

CSS3 帧动画

ccvgpt 2024-08-12 14:59:31 基础教程 12 ℃

互联网给我们带来方便的同时,也时常让我们感到困惑。随便搜搜就出一大堆结果,然而总是有大量的重复和错误。小妖发出的内容,都是自己实测过的,有问题请留言。

前方出现一头牛!

CSS3 帧动画

没错,这是一个 gif,但这个 gif 也是从小妖的 Demo 页上录下来的,闻到了原滋原味的 CSS3 的味道了吗?Demo 见:

http://xngeer.frostbelt.cn/itemcss/frame-animation.html

那如何用 CSS3 实现这个帧动画呢?

  • 准备素材

头儿经常说前端应该能做出炫酷的东西,但巧媳妇难为无米之炊,没有好的设计和素材,前端有时候还是只能徒唤奈何呀。本Demo素材来源于网络

  • 怎么让它动起来呢?

有同学已经想到了,把这张图片设为背景,不断修改 background-position 就可以了!对,其实就是这个道理

  • 那有没有更优雅,而且不涉及 JS 的实现方式呢?

我们今天说的 CSS3 帧动画就是用来解决这个问题,上代码:

定义一个简单的 keyframes , 修改 background-position-x,从 0 到 -590(图片宽度)

animation: ox1 1s steps(6, start) 0ms infinite normal backwards

分别说一下各属性的涵义:

animation-name: ox1; /* 使用 keyframes ox1 */

animation-duration: 1s; /* 动画持续时间 1s */

animation-timing-function: steps(6, start); /* 动画函数,分6步执行,每一帧显示帧结束时的状态 */

animation-delay: 0ms; /* 延迟多长时间后开始执行动画 */

animation-iteration-count: infinite; /* 动画执行无限次 */

animation-direction: normal; /* 是否应该轮流反向播放动画 normal/alternate */

animation-fill-mode: backwards; /* 会在向元素应用动画样式时迅速应用动画的初始帧 */

不必计算每一帧具体的偏移,没有 JS!

这里提到了 animation,帧动画是 animation 的一种使用,想了解更多 animation 相关属性请查看以下 Demo 的源码:

http://xngeer.frostbelt.cn/itemcss/animation.html

有了 CSS3 这把利剑,相信你会走得更远~

Tags:

最近发表
标签列表