CSS3中的transition和animation

一、CSS3中的动画与JS中动画的差别

  1、js使用 帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片

  2、在CSS3里使用transition可以实现补间动画(过渡效果),并且当前元素只要有“属性”发生变化时即存在两种状态(我们用A和B代指),就可以实现平滑的过渡

  3、JS动画虽然兼容性更好,但在能支持CSS3的情况下尽量用CSS3的动画,特别是手机端

  

二、transition的用法(单节点动画)

  语法格式:

transition: 要过渡的属性 花费时间 运动曲线 何时开始;
如果有多组属性变化,还是用逗号隔开。

  

  

属性   描述 CSS
transition 简写属性,用于在一个属性中设置四个过渡属性。 3
transition-property   规定需要应用过度的属性名字           3
transition-duration     定义过度效果要花费的时间,默认是0(一定要加单位:s) 3
transition-timing-function  规定了过度效果的时间曲线。默认是"ease" 3
transition-delay 规定过度效果何时开始。默认是0 3

如果想要所有的属性都变化过渡, 写一个all 就可以

transition-duration 花费时间 单位是 秒 s 比如 0.5s 这个s单位必须写 ms 毫秒

运动曲线 默认是 ease

何时开始 默认是 0s 立马开始

运动曲线示意图:

例如:transition: width 0.6s ease 0s, height 0.3s ease-in 1s;

  也可以:transition:all 1s ;

三、animation的用法 (多节点补间动画)

  语法格式:

    animation: 动画名称  动画时间  运动曲线  何时开始  播放次数  是否反向;

  

  

  要想使用 animation 调用动画,必须先定义动画序列 

    @keyframes  动画名称 {

       from{

          效果从哪里开始

        }

       to {

          到哪里结束

        }

    }

    注:from....to ....相当于从百分0到百分百  ,也可以写成

    

    @keyframes  动画名称 {

       0%{

          效果从哪里开始

        }

       50%{

          中间的过度

       }

       100%{

          到哪里结束

        }

    }

  

  播放次数:如果无限循环播放 :infinite

  逆向播放:当一个动画无限循环播放时,动画结束的那一刻会跳回开始时的节点再重新开始播放,会造成播放的不流畅

       加上逆播放,结束后会从结束的节点再播放到开始的节点。 值 : alternate

  

  状态保持:forwards(保持)  backwards(回到起点,默认) 当动画不是循环播放时,动画结束后会跳回起点位置,如果需要保持当前状态,后面加上forwards

  动画结束的监听事件:transitionend (transition的监听) ,animationend (animationend的监听)

    如果某个动画结束后要衔接后面的动画,设置动画延时不免有些不方便,此时可以用js监听此动画是否结束

  

  关于几个值,除了名字,动画时间,延时有严格顺序要求其它随意r

   

猜你喜欢

转载自www.cnblogs.com/hxblogs/p/13168899.html
今日推荐