动画

坐标系: x(向右为正向),y(向下为正向),z(垂直界面向外为正向);视角都是从正方向往负方向看,顺时针为正度数;

  • animation: animation-name, animation-duration, animation-timing-function(速度曲线), animation-delay, animation-iteration-count, animation-direction, animation-fill-mode, animation-play-state

(1)时间要带单位,合并写的时候顺序可以不一致 延迟时间要在后面;

@keyframes animation-name {}

animation-timing-function: ease逐渐变慢, linear匀速,ease-in慢快,ease-out快慢,ease-in-out慢快慢,cubic-bezier(x,x,x,x)快慢看斜率;  

animation-iteration-count: 次数 | infinite;

animation-direction: normal | reversse(从最后一帧到第一帧执行动画) | alternate(执行到最后一帧后按照原有动画轨迹反向执行到第一帧) | alternate-reverse(结合两种);

animation-fill-mode: forwards | backwards | both  默认none

forwards 等待期为初始样式,完成期为最后一帧样式
backwards 等待期为第一帧样式,完成期为初始样式
both 等待期为第一帧样式,完成期为最后一帧样式

animation-play-state: 执行(默认)还是暂停

jQuery Easing 插件是实现缓动函数最简单的方法

$(selector).animate(styles,speed,easing(缓动),callback)


  • transition: (设置过渡效果的 CSS 属性的名称默认all) transition-duration(s/ms) transition-timing-function(速度曲线) transition-delay(定义过渡效果何时开始)

只有safari要加-webkit-其他的不加或不支持。

多个属性值动画效果设置示例:transition: height 2s,width:2s;


  • transform: 当旋转时坐标轴会一起转,注意 rotate 与 translate 语句的前后顺序

正度数:顺时针;负度数:逆时针;默认原点为对象旋转中心;

rotate(1deg) 二维的沿xy;

rotate3d(1deg) 按(0,0,0)与(x,y,z)组成的单位向量轴转;

rotateX/Y/Z(1deg)三维的沿X/Y/Z轴转;

  • transform-style:preserve-3d;子元素将保留其3d位置

  • transform-origin:x y z;改变元素的原点位置,默认是在中心

  • translate() 移动 当使用的是百分比的时候会是按照当前元素的内容区和padding和边框的宽高来计算;

translate(x,y) 沿xy方向的偏移量 translate3d(x,y,z)

webkit-perspective-origin:x y //只有webkit内核支持

定义3D元素所基于的X轴和Y轴的改变改变3D元素的底部位置,改变的就是视点的位置;


perspective:(景深和视距) 指定观察者距离「z=0」平面的距离,为元素及其内容应用透视变换。
不允许负值; 但针对它的子元素,不是本身,当子元素在它的内部区域的不同地方时,从同一个视角,显示的效果也会不同;


backface-visibility:visible|hidden
控制当前元素旋转到背面对着我们的视角时是否显示

Last Updated:
Contributors: Warren