最后,我们来探讨一下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变形,过渡与动画④的更多相关文章

  1. 重新想,重新看——CSS3变形,过渡与动画①

    学习CSS3,觉得最难记忆的部分除了flex特性之外,就要属变形,过渡和动画部分了.作为初学者,总有种犯懒的心理,想着既然IE8浏览器都不完全支持CSS动画属性,还要考虑浏览器兼容问题,那么就不那么着 ...

  2. 重新想,重新看——CSS3变形,过渡与动画③

    这一篇主要谈谈CSS3的过渡属性. 过渡属性被设计的十分通俗易懂,属性写法为transition,有四个子属性: <transition-property> 表示需要过渡的属性[必须](本 ...

  3. 重新想,重新看——CSS3变形,过渡与动画②

    本篇文章主要用来归纳总结CSS3变形属性. CSS3变形属性大致可以分为以下三个部分: 变形控制属性 2D变形函数 3D变形函数 下面将对其一一进行分析: 1.变形控制属性 所谓的变形控制属性主要指“ ...

  4. css3的过渡、动画、2D、3D效果

    浏览器的内核: 谷歌的内核是:webkit 火狐的内核是:gecko Ie的内核是:trident 欧鹏的内核是:presto 国内浏览器的内核:webkit css3针对同一样式在不同的浏览器的兼容 ...

  5. 前端:css3的过渡与动画

    一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果.      2.实现过渡效果的两个要件:    规定把效果添加到那个css属性上.    规定效果时长 定义 ...

  6. css3 转换 过渡 及动画

    转换transform: 通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸.您可以使用 2D 或 3D 转换来转换您的元素 2D转换属性: transform 向元素应用 2D 或 ...

  7. css3的过渡和动画的属性介绍

    一.过渡 什么是过渡? 过渡是指:某元素的css属性值在一段时间内,平滑过渡到另外一个值,过渡主要观察的是过程和结果. 设置能够过渡的属性: 支持过渡的样式属性,颜色的属性,取值为数值,transfo ...

  8. CSS3 变形记

    CSS3 变形 CSS3变形是一些效果的集合,比如平移,旋转,缩放和倾斜效果,每个效果都称为变形函数. transform transform属性向元素应用 2D 或 3D 转换.该属性允许我们对元素 ...

  9. 常用到用css3实现的转换,过渡和动画

    为什么要用css动画替换js动画 导致JavaScript效率低的两大原因:操作DOM和使用页面动画. 通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在 ...

随机推荐

  1. shell命令发送网站请求

    GET请求:curl "http://192.168.87.195:8888/refresh" POST请求:curl -d "name=value" &quo ...

  2. django post 403解决之道(最新版Django)

    写了一个方法,丢出一个post请求,发现报403 百度解决方案: 按提示及google结果修改setting.py,在MIDDLEWARE_CLASSES增加django.middleware.csr ...

  3. CentOS7.2编译配置LNMP环境(MySQL5.7.20,PHP7.0.24)

    一,     查看系统版本及内核版本 二,     编译安装nginx 1,          新建nginx用户 useradd -s /sbin/nologin -M nginx 2,       ...

  4. MySQL exists 和 not exists 的用法

    有一个查询如下: 1 SELECT c.CustomerId, c.CompanyName   2 FROM Customers c   3 WHERE EXISTS(   4     SELECT  ...

  5. Java 使用阿里云短信的API接口

    亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...

  6. Storm编程模型及组件流程图

    一.Storm编程模型 二.Storm组件流程图

  7. scrollend,滚动结束执行一次

    var timer;window.onscroll = function () { clearTimeout(timer); timer = setTimeout(function () { aler ...

  8. https通讯原理

    https通讯原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经 ...

  9. bat批处理异备文件、压缩文件

    1.压缩本地文件,并把压缩后的文件复制到其他机器 net use Z: \\192.168.135.1\share_linux a123456! /user:chaoqun.guo set bath= ...

  10. html5游戏开发-零基础开发《圣诞老人送礼物》小游戏

    开言: 以前lufy前辈写过叫“ HTML5游戏开发-零基础开发RPG游戏”的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为 ...