CSS3新增动画效果

1、transiition过渡:样式改变就会执行transition

(1)格式:transiition:1s width linear,2s 1s height;

(2)参数:

  • transition-property  要运动的样式  (all || [attr] || none)
  • transition-duration 运动时间

  • transition-delay 延迟时间

  • transition-timing-function 运动形式

ease:(逐渐变慢)默认值

linear:(匀速)

ease-in:(加速)

ease-out:(减速)

ease-in-out:(先加速后减速)

cubic-bezier 贝塞尔曲线( x1, y1, x2, y2 )http://matthewlein.com/ceaser/

(3)过渡完成事件

  • Webkit内核: obj.addEventListener('webkitTransitionEnd',function(){

 

  • },false);
  • firefox: obj.addEventListener('transitionend',function(){

 

  • },false); 

2、transform2D

(1)格式:transiition:1s width linear,2s 1s height;

(2)参数:

  • rotate() 旋转函数 取值度数

deg 度数

  • skew() 倾斜函数 取值度数

skewX()

skewY()

  • scale() 缩放函数 取值 正数、负数和小数

scaleX()

scaleY()

  • translate() 位移函数

translateX()

translateY()

  • transform-origin 旋转的基点(left top左上角)

(3)注意:Transform 执行顺序问题 — 后写先执行

(4)matrix(a,b,c,d,e,f) 矩阵函数

  默认:matrix(1,0,0,1,0,0)

  • 通过矩阵实现缩放

x轴缩放 a=x*a c=x*c e=x*e;

y轴缩放 b=y*b d=y*d f=y*f;

  • 通过矩阵实现位移(ie下没有)

x轴位移: e=e+x

y轴位移: f=f+y

  • 通过矩阵实现倾斜

x轴倾斜: c=Math.tan(xDeg/180*Math.PI)

y轴倾斜: b=Math.tan(yDeg/180*Math.PI)

  • 通过矩阵实现旋转

a=Math.cos(deg/180*Math.PI);

b=Math.sin(deg/180*Math.PI);

c=-Math.sin(deg/180*Math.PI);

d=Math.cos(deg/180*Math.PI);

(5)变换兼容IE9以下IE版本只能通过矩阵来实现 

  • filter: progid:DXImageTransform.Microsoft.Matrix( M11= 1, M12= 0, M21= 0 , M22=1,SizingMethod='auto expand');
  • IE下的矩阵没有E和F两个参数 M11==a; M12==c; M21==b; M22==d

(6)IE下基点修正

obj.style.left=(obj.parentNode.offsetWidth-obj.offsetWidth)/2+"px";
obj.style.top=(obj.parentNode.offsetHeight-obj.offsetHeight)/2+"px";

3、transform3D

(1)参数

  • transform-style(preserve-3d) 建立3D空间
  • Perspective 景深
  • Perspective- origin 景深基点
  • Transform 新增函数

rotateX():水平

rotateY():竖直

rotateZ():垂直于屏幕

translateZ():正值放大,负值缩小

scaleZ()

4、animation

 

(1)关键帧的时间单位

  • 数字:0%、25%、100%等
  • 字符:from(0%)、to(100%)

 

(2)格式

 

  • @keyframes 动画名称 {

        动画状态

  }

  • @keyframes miaov_test {

         from { background:red; }

         to { background:green; }

   }

(3)参数

  • 必要属性

animation-name 动画名称(关键帧名称)

animation-duration 动画持续时间

例如: -webkit-animation-name: ‘m'; -webkit-animation-duration: 4s;

  • 可选属性

  • animation-timing-function 动画运动形式

 

linear 匀速。

 

 

ease 缓冲。

 

 

ease-in 由慢到快。

 

 

ease-out 由快到慢。

 

 

ease-in-out 由慢到快再到慢。

 

 

cubic-bezier(number, number, number, number): 特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

 

  • animation-delay 动画延迟 只是第一次

  • animation-iteration-count 重复次数——infinite为无限次

  • animation-direction 播放前重置

 

动画是否重置后再开始播放

 

 

alternate 动画直接从上一次停止的位置开始执行

 

 

normal 动画第二次直接跳到0%的状态开始执行

 

  • animation-play-state 播放状态( running 播放 和paused 暂停 )

 

posted @ 2016-07-11 16:56  yuan纷飞  阅读(575)  评论(0编辑  收藏  举报