• css3动画模块transform transition animation属性解释


    首先来看下对各大浏览器的兼容性

     IEFirefoxSafariChromeOpera
    CSS 2D Transform no 3.5 3.2 2.0 10.5
    CSS 3D Transform no no 4.* (Mac) no no
    Transition no 3.7 3.2 2.0 10.5
    Animation no no 4.0 2.0 no

    transform

    这个比较简单,控制元素进行平面上的二维变换,有三个属性:

    1. 旋转 rotate()。对元素按顺时针或逆时针方向进行旋转,其值为正数时,表示按顺时针方向旋转,其值为负数时,表示按逆时针方向旋转。单位为度数(deg)。例如:

       ps:旋转属性可以实现那种常见的三角的tips效果。把一个正方形旋转45度就变成◆了,自己试试吧

    2. 偏斜 skew(x,y)。有两个参数,第一个表示按x轴方向倾斜的度数,第二个是y轴的度数。主要的区别是,x轴的值若为正数,表示逆时针偏斜,若为负数,表示顺时针偏斜;而y轴的值跟x轴的刚好相反,正为顺,负为逆。

    3. 平移 translate(x,y)。平移是一种利用x和y坐标值(单位为px)定位元素的方式,注意这个跟position的定位不一样,它参照的位置是它本身,但position参照的是父级。

    transform:rotate(45deg); /*顺时针旋转45度*/
    transform:rotate(-45deg); /*逆时针旋转45度*/
    
    transform:skew(30deg,10deg); /*在x轴方向逆时针偏斜30度,在y轴方向顺时针偏斜10度*/
    
    transform:translate(10px,15px); /*向左移动10px,向下移动15px*/
    
    
    /*多个transform类型的设置可以写一起的,之间用空格分隔,例如上面的可以这样写:*/
    transform:rotate(45deg) skew(30deg,10deg) translate(10px,15px)

     transition

    官方的解释是“允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或者对元素的任何改变中触发,并以圆滑的动画效果改变CSS的属性值”。比如原来的背景是#fff,hover时是#000,如果用了transition,就是从#fff平滑过渡成#000(发挥自己的想象力想一下吧)。

    transition可以分解成4个属性:

    1. transtion-property 用于指定哪些属性值改变时显示transition动画效果。none表示没有,all表示所有,或者用逗号分隔需要指定的属性,如transition-property: background,width,height.

    2. transition-duration 表示动画持续时间,可以设置多个值,中间用逗号分隔,其中每个值对应transition-perproty设置的每个属性。例如:

    transition-perproty: width,height;
    transition-duration:1s,0.5s
    /*表示宽度的转换动画持续的时间为1s,高度转换动画持续的时间为0.5s*/

    3. transition-timing-function 表示转换动画的效果,有多个值可以选择:

      1)Linear 指定一个线性渐变

      2)ease 指定一个逐渐慢下来的动画

      3)ease-in 指定一个先慢后快的渐变动画

      4)ease-out 指定一个先快后慢的渐变动画

      5)ease-in-out 指定一个先慢后快再慢的渐变动画

      6)cubic-bezier 使用贝塞尔曲线来指定一个复杂的动画渐变效果(这个效果很不错,可以做比较复杂的效果,附带一个制作效果的网站:http://matthewlein.com/ceaser/

    4. transtion-delay 指定在动画开始前等待的时间,不需要时可以省略。

    animation

    animation比transition更接近动画的含义,可以为animation设置多帧的效果,然后把这些帧组合、变换,按动画效果显示出来。共有6个属性,在了解它的属性之前,首先有必要先熟悉一下关键帧keyframes这个属性。

    keyframes 从字面上看,keyframes表示关键帧的意思。在flash里面也存在这个概念,我们可以想想一张gif动画由一帧一帧的图像组成。在CSS3里,我们用keyframes描述第一帧的效果,用animation描述每一帧如何组合在一起以及表现的效果。格式如下:

    @keyframes 动画标识名{  /*动画标识名将被animation-name属性所引用*/
       /*每一帧的动画效果,可以通过百分比数值加样式的形式来定义*/
        0%{
               background-color: white;
        }
        50%{
               background-color: red;
        }       
       100%{
               background-color: black;  
        }
    }
    /*我们可以把百分比数值看做第一帧在动画中时间轴的位置,0%在时间轴的开始,50%在时间轴的正中,100%在时间轴的终点。那以上的动画效果就是,元素的背景颜色会从白色渐变成红色,再从红色渐变成黑色。0%和100%也可以分别用form和to来代替*/
    @keyframes 动画标识名{ from{ background-color: white; } 50%{ background-color: red; } to{ background-color: black; } }

     属性:

    1. animation-name 此属性指定动画应对的keyframes,比如设置animation-name为loading,那么动画就对应@keyframes loading所声明的关键帧。如果没有定义关键帧,动画将不会生效。

    2. animation-duration 定义一次动画的持续时间,默认值为0

    3. animation-delay 定义从触发到开始动画的时间

    4. animation-timing-function 定义动画显示的效果,例如先快后慢,先慢后快等,属性值与transition-timing-function相同

    5. animation-iteration-count 该属性定义动画循环的次数,默认为1。我们可以用infinite来使动画无限次循环,这是transition动画所无法支持的。

    6. animation-direction 定义动画播放的方向,默认值为normal,代表每次动画都向前播放。另外一个值是alternate,第偶数次动画向前播放,第奇数次逆向播放。

    要注意在写以上的属性时,都要根据不同的浏览器加上前缀,-webkit-,-o-,-ms-,-moz-

    附带相关链接:

    http://www.w3cplus.com/content/css3-transform(transform)

    http://www.cnblogs.com/lianjun/archive/2011/09/30/2196912.html(transition)

    http://www.cnblogs.com/lianjun/archive/2011/10/07/2200315.html(animation)

  • 相关阅读:
    bootstrap如何设置每一个选项卡对应一个页面
    SpringBoot集成百度UEditor图片上传后直接访问404解决办法
    从0开始完成SpringBoot+Mybatis实现增删改查
    Luarocks 安装艰难过程
    [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)')))
    python + selenium 搭建环境步骤
    mongodb的安装
    git-新建git用户流程-1
    git-关联远程git仓库详细步骤-2
    Django启动服务的流程
  • 原文地址:https://www.cnblogs.com/mofish/p/2860212.html
Copyright © 2020-2023  润新知