动画

在手机上使用CSS动画时很多时候会感到卡顿,然后网上很多教程说开启GPU加速可解决

transform: translate3d(0,0,0); 
-webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-o-transform: translate3d(0,0,0);

 

2D & 3D 转换

转换的英文表示为: transform, 这两个转换都是用的这个英文

这里我们还要注意一点,在我们使元素绕Y轴旋转以后,其实X轴和Z轴也会跟着旋转,所所以正方体的每个面的垂直线还是Z轴

两者功能对比如下:

2D:旋转、位移、缩放、倾斜、复合
3D:旋转、位移、缩放、

 两者样式对比如下:

2D: 
transform :
    rotate(angle): 先当于绕z轴转动

    translate(x,y): 沿着 X 和 Y 轴移动元素
    translateX():
    translateY():

    scale(x,y): 改变元素的宽度和高度
    scaleX(x): 改变元素的宽度
    scaleY(y): 改变元素的高度

    skew(x-angle, y-angle):
    skewX(angle):
    skewY(angle):

    matrix():

transform-origin: x, y, z
    x: left center right length %
    y: top center bottom length %
    z: length

transform-style: flat preserve-3d     flat: 所有子元素在2D平面呈现
    preserve-3d: 所有子元素在3D空间中呈现

3D:
transform :
    rotate3d(x,y,z,angle):   rotate3d(0,1,0,10deg) = rotateY(10deg)
    rotateX(angle):
    rotateY(angle):
    rotateZ(angle):

    translate3d(x,y,z):
    translateX(x):
    translateY(y):
    translateZ(z):

    scale3d(x,y,z):
    scaleX(x):
    scaleY(y):
    scaleZ(z):

    matrix3d():
transform-origin: x, y, z
    x: left center right length %
    y: top center bottom length %
    z: length

transform-style: flat preserve-3d
    flat: 所有子元素在2D平面呈现
    preserve-3d: 所有子元素在3D空间中呈现

perspective:

perspective-origin:

backface-visibility: visible | hidden
    visible: 当元素不面向屏幕时,背面是可见的
    hidden: 当元素不面向屏幕时,背面是不可见的

 

 

过渡

直接作用在一个html元素上面, 针对该元素的所有的样式变换都会触发该过渡效果

transition: property duration timing-function delay, ...

transition-property: none all property
    none: 没有属性会获得过渡效果
    all: 所有属性都将获得过渡效果
    property: 应用过渡效果的 CSS 属性(逗号分隔)\

transition-duration: time
    time: 完成过渡效果需要花费的时间(以秒或毫秒计),默认值是 0,意味着不会有效果, 5s, 5ms

transition-timing-function: linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier(n,n,n,n)
    linear: 以相同速度开始至结束的过渡效果
    ease: 慢速开始,然后变快,然后慢速结束的过渡效果 (默认效果)
    ease-in: 以慢速开始的过渡效果
    ease-out: 以慢速结束的过渡效果
    ease-in-out: 以慢速开始和结束的过渡效果
    cubic-bezier: 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值

transition-delay: time
    time: 指定秒或毫秒数之前要等待切换效果开始

 

动画

@keyframes animationname {

    keyframes-selector   {css-styles;}
}
    animationname: 定义animation的名称
    keyframes-selector: 0 - 100% | from to
    css-styles: 一个或多个合法的CSS样式属性

animation: name duration timint-function delay iteration-count direction fill-mode play-state
    name:
    duration:
    timing-function: steps(n, start|end)
    delay:
    iteration-count: n | infinite; 动画应该播放多少次
    direction: normal | reverse | alternate | alternate-reverse | initial | inherit
        normal: 动画按正常播放 (默认值)
        reverse: 动画反向播放
        alternate: 动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放
        alternate-reverse: 动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放
        initial: 设置该属性为它的默认值
        inherit: 从父元素继承该属性
    fill-mode: none | forwards | backwards | both | initial | inherit
        none: 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素
        forwards: 动画停止时,保留该位置(否则会回到原位)
    play-state: paused | running;   控制动画暂停或播放

 

posted @ 2017-07-16 21:35  _logan  阅读(133)  评论(0编辑  收藏  举报