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,为您提供了近 ...
随机推荐
- 【目录】JVM目录
JVM学习目录 为了方便园友,现对JVM序列笔记做了归档,园友们可以一口气读完整个JVM的笔记 1. [JVM]JVM系列之JVM体系(一) 2. [JVM]JVM系列之垃圾回收(二) 3. [JVM ...
- spring整合mybatis使用<context:property-placeholder>时的坑
背景 最近项目要上线,需要开发一个数据迁移程序.程序的主要功能就是将一个数据库里的数据,查询出来经过一系列处理后导入另一个数据库.考虑到开发的方便快捷.自然想到用spring和mybatis整合一下. ...
- Centos 上 Tengine安装
安装步骤: 1.系统环境 1.1 更新系统 [root@centos ~]# yum update -y 1.2 查看环境 [root@centos ~]# cat /etc/redhat-relea ...
- Angular 基础入门
简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC ...
- 常用JavaScript触发事件
事件句柄 onclick=JavaScript:鼠标单击某个对象.3 ondblclick=JavaScript:鼠标双击某个对象.3 onmousedown=JavaScript:某个鼠标键被按下. ...
- LINQ to SQL语句(8)之Concat/Union/Intersect/Except
适用场景:对两个集合的处理,例如追加.合并.取相同项.相交项等等. Concat(连接) 说明:连接不同的集合,不会自动过滤相同项:延迟. 1.简单形式: var q = ( from c in db ...
- c/c++常见面试题
1. C中static有什么作用 (1)隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命 ...
- django入门之模板的用法
1.为什么要使用模板? 看下以前的代码 #-*- coding:utf-8 -*- from django.shortcuts import render from django.http impor ...
- Java接口响应超时监控
为什么要监控 服务化接口是提供服务的,接口正确性.稳定性是最最重要的,在保证正确的同时需要尽量提高接口响应时间. 有的团队会有专门的工具来对系统响应时间.吞吐量做监控,但如果团队没有这种"待 ...
- CSS3鼠标滑过图标放大以及旋转
本人是HTML5-CSS3初学者,这次分享一款纯CSS3实现的图片动画,当鼠标滑过小图标时,图标会放大,同时图标会出现旋转的动画效果.我们在很多个性化个人博客中经常看到鼠标滑过人物头像后头像图片旋转就 ...