重新想,重新看——CSS3变形,过渡与动画④
最后,我们来探讨一下CSS3的动画属性。
之前提到过,实际上过渡也算作动画的一种。但过渡作为动画的缺陷在于,只能使元素属性从一个值“过渡”至另一个值,但如果想要使元素的属性值根据需要在时间轴上不断变化,则必须使用到animation属性。
animation属性解决动画问题的思路也很简单,即通过制定关键帧的方式,"切割"时间,使浏览器一段一段的通过"过渡"完成属性值的变化。本质上来看,animation的实现效果实际上是多个transition过渡的叠加。
具体来说,animation的控制要点主要有以下两点:
1.制作关键帧并引用
(1)制作关键帧
关键帧属性的写法为@keyframes,用来制定一次动画中,不同阶段元素的属性变化。举例如下:
@keyframes addWidth{
from {
3 width: 200px;
}
50% {
width: 500px;
}
to {
width: 200px;
}
}
(2)引用关键帧
当需要使用此关键帧时,需要为元素添加这样一条声明:animation:addWidth,2s。像transition属性一样,关键帧名称和动画时间为动画属性的必须值。另外,对于animation而言,可以同时声明多个关键帧,只需将不同关键帧用逗号分隔即可。
2.对动画细节的设定
除了选择好完成动画需要的时间并设定好动画的执行效果之外,我们其实还需要对一次动画进行很多其他方面的操控,例如动画延迟,动画结束后是返回最初状态还是保留结尾状态,动画速率,中止动画等等。在CSS3中,这些控制需求可以通过动画属性下的8个子属性得到满足,下面进行一一介绍:
(1)animation-name 通过关键帧名称调用动画。
其值为已设定的关键帧名称或none,当设置为none时,会立即停止(覆盖)已经设置或正在进行的任何动画。
(2)animation-duration 设定动画的时长。
(3)animation-timing-funciton 主要用来设置动画播放方式,使用方式与transition相同。
(4)animation-delay 设定动画的延迟时间。
(5)animation-iteration-count 设定动画的播放次数,默认值为1,可以通过关键字infinite使动画无限循环播放,也可以写明具体数字控制动画的播放次数。
(6)animation-direction 设置动画的播放方向,其值有normal(默认)与alternate两个,第2个值使动画每次在奇数次时向反方向播放动画。
(7)animation-play-state 控制元素播放状态,值有running与paused两个,选择后者时会暂停动画播放,此时元素的样式将回到最原始设置状态。
(8)animation-fill-mode 这个子属性决定了动画结束后属性值应为初始状态还是结束状态,有四个值:none,forwards,backwards,both。
以上逐一解释了animation动画的八个子属性,通过这些子属性的运用,就可以很好的控制元素的动画效果。
最后,再谈一谈animation属性的浏览器兼容问题,和transform类似,IE10以下的浏览器不支持。
重新想,重新看——CSS3变形,过渡与动画④的更多相关文章
- 重新想,重新看——CSS3变形,过渡与动画①
学习CSS3,觉得最难记忆的部分除了flex特性之外,就要属变形,过渡和动画部分了.作为初学者,总有种犯懒的心理,想着既然IE8浏览器都不完全支持CSS动画属性,还要考虑浏览器兼容问题,那么就不那么着 ...
- 重新想,重新看——CSS3变形,过渡与动画③
这一篇主要谈谈CSS3的过渡属性. 过渡属性被设计的十分通俗易懂,属性写法为transition,有四个子属性: <transition-property> 表示需要过渡的属性[必须](本 ...
- 重新想,重新看——CSS3变形,过渡与动画②
本篇文章主要用来归纳总结CSS3变形属性. CSS3变形属性大致可以分为以下三个部分: 变形控制属性 2D变形函数 3D变形函数 下面将对其一一进行分析: 1.变形控制属性 所谓的变形控制属性主要指“ ...
- css3的过渡、动画、2D、3D效果
浏览器的内核: 谷歌的内核是:webkit 火狐的内核是:gecko Ie的内核是:trident 欧鹏的内核是:presto 国内浏览器的内核:webkit css3针对同一样式在不同的浏览器的兼容 ...
- 前端:css3的过渡与动画
一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果. 2.实现过渡效果的两个要件: 规定把效果添加到那个css属性上. 规定效果时长 定义 ...
- css3 转换 过渡 及动画
转换transform: 通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸.您可以使用 2D 或 3D 转换来转换您的元素 2D转换属性: transform 向元素应用 2D 或 ...
- css3的过渡和动画的属性介绍
一.过渡 什么是过渡? 过渡是指:某元素的css属性值在一段时间内,平滑过渡到另外一个值,过渡主要观察的是过程和结果. 设置能够过渡的属性: 支持过渡的样式属性,颜色的属性,取值为数值,transfo ...
- CSS3 变形记
CSS3 变形 CSS3变形是一些效果的集合,比如平移,旋转,缩放和倾斜效果,每个效果都称为变形函数. transform transform属性向元素应用 2D 或 3D 转换.该属性允许我们对元素 ...
- 常用到用css3实现的转换,过渡和动画
为什么要用css动画替换js动画 导致JavaScript效率低的两大原因:操作DOM和使用页面动画. 通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在 ...
随机推荐
- Python全栈day19(函数补充)
一,深浅拷贝 看拷贝列子day19-1.py s=[1,'zhangsan','lisi'] #s2是s的拷贝 s2=s.copy() #打印s2和s是一样的 print(s2) #修改s2 s2[0 ...
- C语言实现单链表(带头节点)
C语言在实现单链表存储时需要注意的几点: 1.定义结构体,typedef:用于给结构体另命名 // 定义结构体类型 typedef struct Node{ int data; struct Node ...
- where both the key and the value are strings
Environment Variables (The Java™ Tutorials > Essential Classes > The Platform Environment) htt ...
- 数据结构(java语言描述)
概念性描述与<数据结构实例教程>大同小异,具体参考:http://www.cnblogs.com/bookwed/p/6763300.html. 概述 基本概念及术语 数据 信息的载体,是 ...
- 转载(web app变革之rem)
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- 排序算法review<2>--Shell 排序
shell排序方法也是一种插入排序算法,于1959年由D.L.Shell提出,其基本方法是:首先将带排序文件分为d1(d1<n)组,将所有彼此之间间隔为d和d的倍数的记录放在一组中,然后在组内进 ...
- MySQL - 查询今天的数据(以及昨天、本月、上个月、今年...) 查询Datetime 时间的数据
1,查询当天(今天)的数据 1 SELECT * FROM `order` WHERE TO_DAYS(order_time) = TO_DAYS(NOW()) 2,查询昨天的数据 1 SELECT ...
- Shiro出现的问题
报错java.lang.IllegalArgumentException: Line argument must contain a key and a value. Only one string ...
- PHP代码编写的优化
// $b 会新创建一个内存空间 $a = array('a'=>'aa','b'=>'bb'); $b = $a; $a['c'] = 'cc'; // $b 会引用 $a 的内存空间 ...
- python练习题(持续更新中。。。。。)
1.检验注册用户是否合法:需要输入用户名,校验用户名是否被注册,如已注册,提示已经注册过,没注册就可以注册:用户名不能为空:用户名长度必须在6-13位之间:最多只能输入三次. users = ['aa ...