CSS3动画学习,用纯CSS来开发自己想要的动画效果

栏目: CSS3 · 发布时间: 5年前

内容简介:上一篇 文章整理了11个开源的加载动画,这一篇来学习一下动画属性的意思跟用法知其然知其所以然css3中动画属性有

上一篇 文章整理了11个开源的加载动画,这一篇来学习一下动画属性的意思跟用法

知其然知其所以然

动画属性

css3中动画属性有

  • animate-name 动画名
  • animate-duration 动画持续时间
  • animate-delay 延时执行动画时间
  • animate-direction 动画执行方向
  • animation-fill-mode 动画填充模式
  • animation-iteration-count 动画执行次数
  • animation-play-state 动画播放状态,指定动画播放还是暂停 [paused, running]
  • animation-timing-function 指定动画的播放时从一个状态过滤到另一个状态的速度曲线

上面这些动画属性也可以直接使用 animate 属性来简写,类似于 background 属性,属性后面参数意思的顺序分别是

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

animate-direction 取值

描述
normal 默认值,正常方向
reverse 反向
alternate 首先向前播放,然后向后播放
alternate-reverse 首先向后播放,然后向前播放

animation-fill-mode 取值

描述
none 没有填充模式
forwards 元素将保留由最后一个关键帧设置的样式值(取决于animation-direction和animation-iteration-count)
backwards 元素将获取由第一个关键帧设置的样式值(取决于animation-direction),并在动画延迟期间保留此值
both 动画将遵循向前和向后的规则,在两个方向上扩展动画属性

animation-iteration-count 表示动画执行次数,可填1,2,3,4…这些数字,表示执行1次,2次…,也可以填 infinite 表示无限次

如果指定只执行固定次数的话,比如 animation-iteration-count: 2; 那么动画在执行2次后,会停留在最后一桢

如果想让动画执行完后就停留在最后一桢,可以将 animation-fill-mode 设置为 forwards ,就会停留在最后一桢

原链文接: https://tomoya92.github.io/2019/04/04/css-animation/

animation-timing-function 取值

描述
linear 动画从头到尾具有相同的速度
ease 默认值。动画开始缓慢,然后快速,慢慢结束
ease-in 动画开始很慢
ease-out 动画结尾很慢
ease-in-out 动画开始结尾都很慢
ease-start 相当于 steps(1, start)
ease-end 相当于 steps(1, end)
steps(int, start, end) 指定带有两个参数的步进功能。第一个参数指定函数中的间隔数。它必须是正整数(大于0)。第二个参数是可选的,它是值“start”或“end”,并指定值在区间内发生变化的点。如果省略第二个参数,则给出值“end”
cubic-bezier(n,n,n,n) 在cubic-bezier函数中定义自己的值 可能的值是从0到1的数值

动画实现

有了这些属性,但动画是怎么展示的,还是要自己来写的

实现动画要用到一个关键字 @keyframes ,在这个关键字后跟着动画名,然后通过百分比来实现动画在不同时刻的效果,如下

div.box {
  width: 200px;
  height: 200px;
  animate-name: myanimate;
  animate-duration: 4s;
}
@keyframes myanimate {
  0% {background-color: #111;}
  25% {background-color: #222;}
  50% {background-color: #333;}
  100% {background-color: #444;}
}

这就实现了一个简单的动画,意思是 在4s内,动画被分成了4种状态,每一种状态对应1s,在第1s时,div.box的背景色是#111,第2s时背景色是#222...

除了百分比实现动画效果,还可以使用 from to 来实现,它俩对应百分比中的 0% 100% ,这种当然没有百分比定义的细致

它们还可以混合着用,如上面动画可以被改成

@keyframes myanimate {
  from {background-color: #111;}
  25% {background-color: #222;}
  50% {background-color: #333;}
  to {background-color: #444;}
}

总结

属性都过一遍后,感觉css3的动画还是挺简单的

参考

写博客不易,转载请保留原文链接,谢谢!

原文链接:


以上所述就是小编给大家介绍的《CSS3动画学习,用纯CSS来开发自己想要的动画效果》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我看电商2(双色)

我看电商2(双色)

黄若 / 电子工业出版社 / 2016-6 / 39.00元

《我看电商2》是行业畅销书《我看电商》的续集。 《我看电商》自出版以来,连续印刷14 次,受到业界人士和广大读者的高度好评。《我看电商2》承续作者一贯的风格,以行业观察、经验分享为出发点,重点分析了过去一年中国电商界的最新动态与趋势,包括双11点评、京东关闭拍拍、上市公司私有化等。 电子商务是我国近年来发展最快的新兴行业之一,作者作为这个行业的长老级领军人物,善于思考,长于实操。《我看......一起来看看 《我看电商2(双色)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具