Css3系列-动画基础

css3为我们提供了强大的动画功能,我们可以借助改变其他css属性;css3除了借助最常用css属性,要想实现更加漂亮的动画,结合css3的变换属性必可不少。

介绍css3的动画之前:

transform 变换等

transition 过渡等

setTimeout 一次延时函数等

我们先做学习了解!!!

一、css3动画-热身了解

第一大部分的介绍都是api的展示和解释,我们下面的学习中,就是在用这部分api做处理:

1.transform 变换

2D处理
transform  CSS3 无 检索或设置对象的变换
transform-origin CSS3 无 检索或设置对象中的变换所参照的原点

取值
none: 无转换
matrix(): 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵
translate(): 指定对象的2D translation(2D平移)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
translateX(): 指定对象X轴(水平方向)的平移
translateY(): 指定对象Y轴(垂直方向)的平移
rotate(): 指定对象的2D rotation(2D旋转),需先有transform-origin属性的定义
scale(): 指定对象的2D scale(2D缩放)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值
scaleX(): 指定对象X轴的(水平方向)缩放
scaleY(): 指定对象Y轴的(垂直方向)缩放
skew(): 指定对象skew transformation(斜切扭曲)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
skewX(): 指定对象X轴的(水平方向)扭曲
skewY(): 指定对象Y轴的(垂直方向)扭曲
 
3D处理
transform-style: preserve-3d;

取值
matrix3d(n,n,n,n,n,n,
n,n,n,n,n,n,n,n,n,n)
 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。

3D相关属性
transform-style属性也是3D效果中经常使用的,其两个参数,flat|preserve-3d. 前者flat为默认值
perspective 透视距离,人眼到元素标签的距离,单位px,3d真实效果就具有近大远小
perspective-origin 透视原点
backface-visibility:hidden; 背面面对屏幕是否可见,元素3d旋转后背面对人眼和屏幕

2.transition 过渡

transition  CSS3 无 复合属性。检索或设置对象变换时的过渡效果
transition-property CSS3 无 检索或设置对象中的参与过渡的属性
transition-duration CSS3 无 检索或设置对象过渡的持续时间
transition-timing-function CSS3 无 检索或设置对象中过渡的类型
transition-delay CSS3 无 检索或设置对象延迟过渡的时间

3.animation 动画

animation  CSS3 无 复合属性。检索或设置对象所应用的动画特效
animation-name CSS3 无 检索或设置对象所应用的动画名称
animation-duration CSS3 无 检索或设置对象动画的持续时间
animation-timing-function CSS3 无 检索或设置对象动画的过渡类型
animation-delay CSS3 无 检索或设置对象动画延迟的时间
animation-iteration-count CSS3 无 检索或设置对象动画的循环次数
animation-direction CSS3 无 检索或设置对象动画在循环中是否反向运动
animation-play-state CSS3 无 检索或设置对象动画的状态
animation-fill-mode CSS3 无 检索或设置对象动画时间之外的状态

@keyframes animations{
 0%{-webkit-transform:translate(0);opacity:0;}
 50%{-webkit-transform:translate(30px);opacity:1;}
 70%{-webkit-transform:translate(35px);opacity:1;}
 100%{-webkit-transform:translate(60px);opacity:0;}
}

setTimeout 一次延时函数

setTimeout(code,millisec)
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。
clearTimeout(id);
id是由setTimeout返回的id值

setInterval 间隔延时函数

setInterval(code,millisec)
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。
clearInterval(id);
id是由setInterval返回的id值

requestAnimationFrame 据浏览器自己的频率进行执行

requestAnimationFrame 是专门为实现高性能的帧动画而设计的一个API,目前已在多个浏览器得到了支持,
包括IE10+,Firefox,Chrome,Safari,Opera等,在移动设备上,ios6以上版本以及IE mobi
le 10以上也支持requestAnimationFrame,唯一比较遗憾的是目前安卓上的原生浏览器并不支
持requestAnimationFrame,不过对requestAnimationFrame的支持应该是大势所趋了,
安卓版本的chrome 16+也是支持requestAnimationFrame的。

requestAnimationFrame 比起 setTimeout、setInterval的优势主要有两点:

1、requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,
并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。

2、在隐藏或不可见的元素中,requestAnimationFrame将不会进行重绘或回流,
这当然就意味着更少的的cpu,gpu和内存使用量。

像setTimeout、setInterval一样,requestAnimationFrame是一个全局函
数。调用requestAnimationFrame后,它会要求浏览器根据自己的频率进行
一次重绘,它接收一个回调函数作为参数,在即将开始的浏览器重绘时,
会调用这个函数,并会给这个函数传入调用回调函数时的时间作为参数。
由于requestAnimationFrame的功效只是一次性的,所以若想达到动画
效果,则必须连续不断的调用requestAnimationFrame,就像
我们使用setTimeout来实现动画所做的那样。requestAnimationFrame函
数会返回一个资源标识符,可以把它作为参数传入cancelAnimationFrame函
数来取消requestAnimationFrame的回调。

二、css3动画-各个属性方法分析

这部分需要实例的演示结合解释,大家下载项目包,我把解释都注释在效果上面,大家看html页面就可。

http://www.oschina.net/code/snippet_2352644_50362

大家应该理解css的认识必须属性直接结合实例,但是博客不具有这个功能,也许我没发现吧!我们要了解的都写在1-6的html页面里了,大家对应看具体的页面就好了。

当前目录学习页面:2-css3动画-各个属性方法分析.html

三、css3动画-实例实现

下载地址还是上面的:http://www.oschina.net/code/snippet_2352644_50362

当前目录学习页面:3-css3动画-实例实现.html

四、css3动画-完整实例实现

当前目录学习页面:4-css3动画-完整实例实现.html

五、css3动画-小小实例

当前目录学习页面:5-css3动画-小小实例.html

其中滚动监听引导线效果是自己写的!!!其他小实例是下载的,我必须说明,不过地址忘了,小实例属于转载!!!)

六、css3过渡

当前目录学习页面:6-css3过渡.html

(最后的不是动画,是过渡效果的使用结合jq,不要受第五部分影响,这也是自创!!!)

动画实例下载地址:

http://www.oschina.net/code/snippet_2352644_50362

时间: 2024-10-13 08:55:44

Css3系列-动画基础的相关文章

css3 transition 动画基础

一.transition语法: transition:[<transition-property>||<transition-duration>|| <transition-timing-function>||<transition-delay>|| <transition-property>||<transition-duration>|| <transition-timing-function>||<transi

css3 animation动画技巧

一,css3 animation动画前言 随着现在浏览器对css3的兼容性越来越好,使用css3动画来制作动画的例子也越来越广泛,也随着而来带来了许多的问题值得我们能思考.css3动画如何让物体运动更顺畅,css3动画如何做弧线动画,css3动画是否有动画库,css3帧动画如何快速简单……   为了解决这些折磨人的问题,我们今天来分析一下: 首先介绍css3 Animation动画库: http://daneden.github.io/animate.css/ 基本涵盖了我们常见的基础css3动

动画基础知识汇总

转载自http://www.cnblogs.com/kenshincui/p/3972100.html --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iO

css3 animation 的基础认识.

css3 中的 animation属性主要用来做动画的,详细的文章看:http://www.w3cplus.com/content/css3-animation 调用animation的方法:animation-name(动画名称) animation-duration(播放动画的总时长) animation-timing-function(动画的播放方式: ease  ease-in  ease-in-out linear  cubic-bezier ) animation-delay(动画开

纯CSS3冒泡动画按钮实现教程

这款CSS3动画按钮非常的有创意,鼠标在滑过按钮时并不像其他按钮那样仅仅改变按钮的背景颜色,而是出现很酷的冒泡动画.这么惊艳的CSS3动画按钮,这篇文章主要将按钮实现的过程和代码分享给大家,希望能给在学习CSS3的同学带来实质性的帮助.可以下来看看在线演示效果: 在线演示        源码下载 接下来我们来讲解一下这款CSS3气泡动画的按钮实现过程,主要由HTML代码和CSS代码组成. HTML代码: <div id="buttonContainer"> <a hr

iOS开发系列-动画绘图CALayer

代码下载地址:https://github.com/wwpeter/WW-MotionDemo.git 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单:

CSS3 transition动画、transform变换、animation动画

一.CSS3 transition动画 transition可以实现动态效果,实际上是一定时间之内,一组css属性变换到另一组属性的动画展示过程. 属性参数: 1.transition-property 设置过渡的属性,比如:width height background-color2.transition-duration 设置过渡的时间,比如:1s 500ms3.transition-timing-function 设置过渡的运动方式 linear 匀速 ease 开始和结束慢速 ease-

CSS3与动画有关的属性transition、animation、transform对比

最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换). Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D

CSS3简单动画

css3的动画确实非常绚丽!浏览器兼容性很重要!. 分享两个小动画 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=&qu