css动画
css3中与动画相关的标签
1.animation标签
不同浏览器的动画属性前缀如表中所示( @-pre-keyframes 以及 下面所列 animation 相关的几个属性都用到这几个前缀),其中IE9及以前的版本均不支持 @keyframe 规则或 animation 属性。
| 属性 | 浏览器支持 | ||||
|---|---|---|---|---|---|
|
@keyframes |
10+ | ||||
| animation | 10+ | ||||
“动画的整个过程”:
css3动画的过程是用 @keyframes 来描述的,分别以百分比来标识不同时态的元素属性:
@-pre-keyframes 自定过程名{
0%: {style} /*必需*/
20%: {style}
……
100%: {style} /*必需*/
}
在元素属性中绑定动画 并 设置动画属性:
| 属性 | 描述 |
|---|---|
| -pre-animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 |
| -pre-animation-name | 规定 @keyframes 动画的名称。 |
| -pre-animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 |
| -pre-animation-timing-function | 规定动画的速度曲线。默认是 "ease"。 |
| -pre-animation-delay | 规定动画何时开始。默认是 0。 |
| -pre-animation-iteration-count | 规定动画被播放的次数。默认是 1。 |
| -pre-animation-direction | 规定动画是否在下一周期逆向地播放。默认是 "normal"。 |
| -pre-animation-play-state | 规定动画是否正在运行或暂停。默认是 "running"。 |
| -pre-animation-fill-mode | 规定对象动画时间之外的状态。 |
简写形式为
-pre-animation: keyframe duration function delay count derection
2.transition标签
首先说一下 transition 标签 animation标签的不同。transition 标签定义的是当元素的指定属性有变化时,以该属性标识的方式进行过渡。比如说:指定高度变化时激活本动画,本来高200px, 用户或者开发者把它变成了高 300px,那么这个高度的变化不会立即生效,而是按照 transition 定义的方式进行变化成 300px。
IE 10、Firefox、Opera 和 Chrome 支持 transition 属性。Safari 支持替代的 -webkit-transition 属性。
| IE | Firefox | Chrome | Safari | Opera |
|---|---|---|---|---|
| 10+ |
详细属性如下:
| 值 | 描述 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| transition-property |
规定设置过渡效果的 CSS 属性的名称。
|
||||||||||||||
| transition-duration | 规定完成过渡效果需要多少秒或毫秒。 | ||||||||||||||
| transition-timing-function | 规定速度效果的速度曲线。
|
||||||||||||||
| transition-delay | 定义过渡效果何时开始。 |
可以简写成以下形式:
transition: property duration timing-function delay;
3.再介绍一个与动画无关的值-- transform
transform本身并不能产生动画,只是使得直上直下的平面元素产生了平面或三维的变形。之所以放在这里一起说明,是因为许多动画的关键帧中都会用到这一变换。
| IE9 | IE10 | Opera | Chrome | Safari | Firefox |
|---|---|---|---|---|---|
|
-ms- 只支持2D |
无前缀 3D |
-o- 2D |
-webkit- 3D |
-webkit- 3D |
-moz- 3D |
2D转换只是平面的转换,比如在平面上旋转、位置等。而3D转换则又包括透视、翻转等等。
具体用法为:
transform: none 或者 类型;
下面给出转换类型的列表:
| 值 | 描述 | 测试 |
|---|---|---|
| none | 定义不进行转换。 | 测试 |
| matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 | 测试 |
| matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 | |
| translate(x,y) | 定义 2D 转换。 | 测试 |
| translate3d(x,y,z) | 定义 3D 转换。 | |
| translateX(x) | 定义转换,只是用 X 轴的值。 | 测试 |
| translateY(y) | 定义转换,只是用 Y 轴的值。 | 测试 |
| translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 | |
| scale(x,y) | 定义 2D 缩放转换。 | 测试 |
| scale3d(x,y,z) | 定义 3D 缩放转换。 | |
| scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 | 测试 |
| scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 | 测试 |
| scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 | |
| rotate(angle) | 定义 2D 旋转,在参数中规定角度。 | 测试 |
| rotate3d(x,y,z,angle) | 定义 3D 旋转。 | |
| rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 | 测试 |
| rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 | 测试 |
| rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 | 测试 |
| skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 | 测试 |
| skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 | 测试 |
| skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 | 测试 |
| perspective(n) | 为 3D 转换元素定义透视视图。 |
浏览器兼容问题
最近写了个轻画册的小页面,IE、Chrome、Firefox、Safari、Opera所有动画效果都能照预期的展现出来,惟独360没有动画。本来一直认为360底层用的应该是和IE的一样的。后来发现360有3种不同的模式,分别是:极速模式、兼容模式和 IE标准模式。3个模式下对应的内核分别为 Webkit内核、IE兼容的的Trident老内核、IE9+采用的新内核。而第二种Trident内核是国内许多兼容浏览器所采用的内核,兼容问题较少(最终展现)但对HTML和CSS3等支持非常不好。所以最终问题就是:如何让360打开我们的页面时自动选择极速模式或者IE标准模式?
360官方给出了这样的解决方案:
若页面需默认用极速核,增加标签:<meta name=”renderer” content=”webkit” />
若页面需默认用ie兼容内核,增加标签:<meta name=”renderer” content=”ie-comp” />
若页面需默认用ie标准内核,增加标签:<meta name=”renderer” content=”ie-stand” />
css动画的更多相关文章
- 梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画
CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能. 一.两者的主要区别 先开门见山的说说两者之间的区别. 1)CSS动画: 基于CSS的动 ...
- Css 动画的回调
在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...
- 【译】css动画里的steps()用法详解
原文地址:http://designmodo.com/steps-c... 原文作者:Joni Trythall 我想你在css 动画里使用steps()会和我一样有很多困惑.一开始我不清楚怎样使用它 ...
- css动画属性性能
性能主要表现:流量.功耗与流畅度 在现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画. JS动画是通过JS动态改写样式实现动画能力的一种方案,在PC端兼容低端浏览器中不失为一种推荐方案. ...
- Css动画形式弹出遮罩层,内容区上下左右居中于不定宽高的容器中
<!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...
- css动画与js动画的区别
CSS动画 优点: (1)浏览器可以对动画进行优化. 1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout ...
- CSS动画与GPU
写在前面 满世界的动画性能优化技巧,例如: 只允许改变transform.opacity,其它属性不要动,避免重新计算布局(reflow) 对动画元素应用transform: translate3d( ...
- 15个来自 CodePen 的酷炫 CSS 动画效果【下篇】
CodePen 是一个在线的前端代码编辑和展示网站,能够编写代码并即时预览效果.你在上面可以在线分享自己的 Web 作品,也可以欣赏到世界各地的优秀开发者在网页中实现的各种令人惊奇的效果. 今天这篇文 ...
- 赞!15个来自 CodePen 的酷炫 CSS 动画效果
CodePen 是一个在线的前端代码编辑和展示网站,能够编写代码并即时预览效果.你在上面可以在线分享自己的 Web 作品,也可以欣赏到世界各地的优秀开发者在网页中实现的各种令人惊奇的效果. 今天这篇文 ...
- Animo.js :一款管理 CSS 动画的强大的小工具
Animo.js 是一个功能强大的小工具,用于管理 CSS 动画.它的特色功能包括像堆栈动画,创建跨浏览器的模糊,设置动画完成的回调等等.Animo 还包括惊人的 animate.css,为您提供了近 ...
随机推荐
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- php多关键字查询
php单一关键字查询 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 tdansitional//EN" "http: ...
- ASP.NET Core 中文文档 第二章 指南(8) 使用 dotnet watch 开发 ASP.NET Core 应用程序
原文:Developing ASP.NET Core applications using dotnet watch 作者:Victor Hurdugaci 翻译:谢炀(Kiler) 校对:刘怡(Al ...
- 简单封装分页功能pageView.js
分页是一个很简单,通用的功能.作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复 ...
- C#和Java中的Substring()
吐槽-使用清理软件整理电脑要注意,不要清理的"太狠",不然你会受伤的! C#中的Substring() 示例 实现代码 using System;using System.Coll ...
- 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方
刚上线一个新版本,其中有台电脑打开软件就报[xx的类型初始值设定项引发异常](还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图: 显然是该类型的静态构造函数中抛异常了(红线处就是类名),遂打开该类, ...
- html5+jqueryMobile编写App推广注册页
html5+jqueryMobile的组合可以直接开发web版的app,所以用到我当前app中的推广注册页的编写是很恰当的,其实只要你熟悉html4+jquery的组合开发,那么html5+jquer ...
- JAVA基础培训(isoft)
我们
- php实现设计模式之 状态模式
<?php /*状态模式:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类.(行为模式) * * 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做 ...