美文网首页
animation动画

animation动画

作者: fb941c99409d | 来源:发表于2020-01-02 21:13 被阅读0次
    //简写
    //【只有一个时间值,则表示为动画持续时间;有两个时间值时,第一个为动画持续时间,第二个为动画延迟时间。】
    animation: move 3s  其他顺序无所谓;
    
    animation-name:move | none
    
    animation-duration: 0默认  .5s 500ms
    
    animation-timing-function:
                                linear 匀速 线性过渡
                                ease  平滑过渡
                                ease-in 加速  由慢到快 
                                ease-out 减速  由快到慢 
                                ease-in-out 加速然后减速 由慢到快再到慢
                                steps(1,start|end) start看不见第一帧,end看不见最后一帧
                                step-start 等同于step-start(1,start)
                                step-end   等同于step-start(1,end)
                                cubic-bezier() 贝塞尔曲线 // http://cubic-bezier.com/#.41,1.77,.6,-0.13
    
    animation-delay:0默认  2s 动画外属性
    //动画执行次数
    animation-iteration-count :默认1  infinite无限循环
    //动画内帧的运动路线 
    animation-direction:  
                          normal 正常方向
                          reverse 反方向运行 
                          alternate 动画先正常运行再反方向运行,并持续交替运行 
                          alternate-reverse 动画先反方向运行再正方向运行,并持续交替运行 
                          【后两个值必须配合循环属性才能实现效果】
    //动画开始前和结束后的位置
    animation-fill-mode: 
                        none 默认值。不设置对象动画之外的状态
                        forwards 设置对象状态为动画结束时的状态
                        backwards 设置对象状态为动画开始时的状态
                        both 设置对象状态为动画结束或开始的状态 或中间
    
    animation-play-state:paused(暂停) running(默认)
    
    
    定义关键帧
    @keyframes move{
        from{
            //等同于0%
        } 
        to{
            //等同100%
        } 
    }
    兼容
    @-webkit-keyframes move{
        //百分比代表duration的时间比   
        0%{
            transform:translateX(0px);
        }
        40%{
            transform:translateX(200px);
        }
        100%{
            transform:translateX(500px);
        }
    }
    
    will-change 3D硬件加速
    主要针对手机端
    --- CSS3动画(will-change)原理 ----
    怎么样让动画显示的更流畅:
    1、position-fixed 代替 background-attachment
    2、带图片的元素放在伪元素中
    3、巧用will-change
    -------------------------------------------------
    目标:增强页面渲染性能。
    
    CPU和GPU
    CPU即中央处理器,解释计算机指令以及处理计算机软件中的数据。
    GPU即图形处理器,专门处理和绘制图形相关的硬件。GPU是专为执行复杂的数学和几何计算而设计的,
    有了它,CPU就从图像处理的任务中解放出来,可以执行其他更多的系统任务。
    
    硬件加速:
    在计算机中把计算量非常大的工作分配给专门的硬件来处理,减轻CPU的工作量。
    
    现状:
    CSS的动画、变形、渐变并不会自动触发GPU加速,而是使用浏览器稍慢的软件渲染引擎。
    在transition,transform和anumation的世界里,应该卸载进程到GPU以加快速度。
    只有3D变形会有自己的layer,2D变形不会。
    
    translateZ()(or translate3d()) Hack
    为元素添加没有变化的3D变形,骗取浏览器触发硬件加速。
    
    代价:
    这种情况通过向它自己的层叠加元素,占用PAM和GPU存储空间。
    
    --- CSS3动画(will-change)应用 ----
    will-change:
    属性:提前通知浏览器元素将要做什么动画,让浏览器提前准备合适的优化设置。
    语法:will-chang: auto | scroll-position | contents | <custom-ident> | <animateable-feature>;
    兼容性:IE13+、Firefox47+,Chrome49+,Safari9.1+,Opera39+,IOS9.3,Android52
    关键词说明:
    auto:此关键字表示没有特定的意图,适用于它通常所做的任何启发式和优化。
    scroll-position:表示将要改变元素的滚动位置。
    contents:表示将要改变元素的内容。
    <custom-ident>:明确指定将要改变的属性与给定的名称。
    <animateable-feature>:可动画的一些特征值,比如left、top、margin等。
    
    !!!使用注意(勿滥用、提前声明、remove)
    -------------------------------------------------
    举个栗子:
    div {
    -webkit-will-change:transform;
    -moz-will-change:transform;
    will-change:transform;
    }
    

    相关文章

      网友评论

          本文标题:animation动画

          本文链接:https://www.haomeiwen.com/subject/nawooctx.html