• css动画详解 (transition & animation)


    属性

    transition(4个属性):

    transition: width 5s ease 3s;  /*简写*/
        transition-property: width; /*过渡属性名*/
        transition-duration: 5s; /*持续时间,默认为0*/
        transition-timing-function: ease; /*速度*/
        transition-delay: 3s; /*延迟*/
    

    animation(7+个属性)

    animation: myfirst 5s linear 2s infinite alternate backwards;/*简写*/
    /*参数依次是:
    name/duration/timing-function/delay/iteration-count/
    direction (方向,重复多次时起作用,表示是否逆向播放,alternate逆向/
    play-state(动画状态,running开启)/
    fill-mode (动画结束时候的停留位置,backwards开始帧停留,forward结束帧停留)*/
    /*  infinite:无限次的  */
    

    transform 又是什么

    元素的一个移动属性,修改具体的参数,元素会做静态移动,也可以作为动画的变化属性;包含5个值:

    1. translate3d(x,y,z) 控制元素在页面上的三轴的位置;
    2. rotate(deg) 旋转角度;
    3. skew[x,y](deg) 倾斜度的;
    4. scale3d(x,y,z) 放大缩小,属性是比值;
    5. matrix3d,css矩阵。通过这个矩阵属性,涵盖了上面所有的属性值,数学性较强。

    区别

    1. transition只能设置开始与结束2个关键帧的状态,多个关键帧可以使用 @keyframes 规则撰写动画
     transition: width 2s ease, height 2s ease;
     @keyframes addWidth{
            from{
            100px; /*一般的元素属性变化*/
            transform: translate3d(-500%,0,0); /*transform控制的变化*/
            }
            to{
            200px;
            transform: none;
            }
        }
    /*或者用0%到100%*/
    @keyframes addWidth{
            0%{
                100px;
            }
            50%{
                200px;
            }
            100%{
                100px;
         }}
    
    1. 触发条件:transition通常和hover等事件配合使用,由事件触发。animation则和gif动态图差不多,立即播放。
    2. 循环:animation可以设定循环次数
    3. 与JavaScript的交互:animation与js的交互不是很紧密。tranistion和js的结合更强大。js设定要变化的样式,transition负责动画效果。

    详细分析见这篇文章:

    兼容处理

    /*CSS样式,animation一样*/
    -webkit-transition: all .5s ease; /*--chrome,safari--*/
    -moz-transition: all .5s ease; /*--firefox--*/
    -ms-transition: all .5s ease; /*--IE--*/
    -o-transition: all .5s ease; /*--opera--*/
    transition: all .5s ease; /*--W3C--*/
    
    /*写动画*/
    @-webkit-keyframes demo{/*--chrome,safari--*/}
    @-moz-keyframes demo{/*--firefox--*/}
    @-ms-keyframes demo{/*--IE--*/}
    @-o-keyframes demo{/*--opera--*/}
    @keyframes demo{ /*--W3C--*/}
    

    详细参考:
    https://www.w3.org/TR/css3-animations/

  • 相关阅读:
    Vue核心之数据劫持
    Flex 布局教程
    Grid布局
    我们都在深夜,参差不齐地入眠
    一个十分好用的动画工具:Velocity.js
    前端知识点总结——jQuery(下)
    前端知识点总结——jQuery(上)
    虫师Selenium2+Python_2、测试环境搭建
    虫师Selenium2+Python_11、自动化测试项目实战
    虫师Selenium2+Python_12、BDD框架之Lettuce入门
  • 原文地址:https://www.cnblogs.com/flora-dn/p/7240541.html
Copyright © 2020-2023  润新知