animejs动画库使用指南---【学习总结】


var myAnimation = anime({
      targets: ['.blue', '.green' ,'.yellow'],//需要执行动画的目标元素
      translateX: '200px',//'translateX':'px';'translateY':'px';'translateZ':'px';'rotate':'deg';'rotateX':'deg';'rotateY':'deg';'rotateZ':'deg';'scale':—;'scaleX':—;'scaleY':—;'scaleZ':—;'skew':'deg';'skewX':'deg';'skewY':'deg';'perspective':'px';
      scale: { //特殊属性,高级用法
        value: 1.5,
        duration: 1600,
        delay: 800,
        easing: 'easeInOutQuart'
      },
      width: {
        value: '-=20px', // 原始值 - 20 ,可以+=或*=或/=
        duration: 1800,
        easing: 'easeInOutSine'
      },
      borderWidth:anime.random(0, 8),//随机数
      height:function(el, i, l) { return i*30 + 10; },//使用函数返回数值
      rotate: 360,//可以省略单位,会自动补上单位
      borderRadius: ['10%', '50%'],//设定动画初始值
      // backgroundColor:'#f00',
      innerHTML: [0, 10000],
      keyframes: [ //动画关键帧
        {translateY: -40},
        {translateX: 250},
        {translateY: 40},
        {translateX: 0},
        {translateY: 0}
      ],
      translateY: [ //属性关键帧
        { value: -40, duration: 500 },
        { value: 40, duration: 500, delay: 1000 },
        { value: 0, duration: 500, delay: 1000 }
      ],
 
      delay:anime.stagger(500, {start: 100}),//默认0,开始延迟毫秒数 number/function (el, index, total)/anime.stagger(500, {start: 100,direction: 'reverse'}):延迟从100ms开始,每个延迟500ms
      // anime.stagger(500, {start: 100,direction: 'reverse',easing: 'easeOutQuad'}) //direction:'reverse'(从目标元素最后一个元素到第一个元素执行动画)/'normal'(默认,按顺序执行)
      endDelay:function(el, i, l) {return i * 500;},//默认0,结束延迟毫秒数 number/function (el, index, total)
      duration: 3000,//默认1000,动画持续时长 number/function (el, index, total)
      autoplay:true,//默认true,是否自动执行动画
      loop: false,//默认false,是否循环执行动画或执行次数  number/boolean
      direction:"normal",//默认'normal',执行动画的方向 'normal'(正方向), 'reverse'(反方向), 'alternate'(往返)
      easing:'easeOutElastic(1, .5)',//默认easeOutElastic(1, .5),动画的速度曲线,可以为下面的值:
      // 匀速:linear,
      // 不匀速:easeIn/easeOut/easeInOut/easeOutIn + Quad(由快至慢)/Cubic(由快至慢,效果更强)/Quart(由快至慢,效果更强)/Quint(由快至慢,效果更强)/Sine(由快至慢,比Quad弱)/Expo(突然减速,效果较强)/Circ(突然减速,效果较弱)/Back(冲出终点后返回),例如 easeInOutSine
      // 三次贝塞尔:cubicBezier(.5, .05, .1, .3)
      // 弹簧:spring(1, 80, 10, 0)
      // 弹跳:easeInElastic,easeOutElastic,easeInOutElastic,
      // 台阶式:steps(10) //[1,+∞] 平均分成n份执行,有卡顿感
      // 自定义:function(el, i, total){return  function(time) {return Math.pow(Math.sin(time * (i + 1)), total);}}
      elasticity:400,//默认400,弹性大小,数值越大,弹性越大
      round:100,//默认false,给数字添加动画时,显示小数点后几位,10表示一位,1000表三位 number/boolean
      begin:function(animation){},//动画开始的回调,执行一次
      update:function(animation){},//动画进行中的回调,执行多次
      complete:function(animation){},//动画完成的回调,执行一次
      // styleAttrs:'xxx',//css属性名(小驼峰):对应的属性值,一般是opacity和transforms,其他的可能会导致动画不稳定
    })
 
    document.querySelector('.play').onclick = myAnimation.play;//开始动画
    document.querySelector('.pause').onclick = myAnimation.pause;//暂停动画
    document.querySelector('.restart').onclick = myAnimation.restart;//重新开始动画
    document.querySelector('.reverse').onclick = myAnimation.reverse;//反转动画的方向
    document.querySelector('.skip').onclick = myAnimation.seek(myAnimation.duration * 1.5);//动画跳转到特定时间(以毫秒为单位)定格
    anime.remove('.remove-demo .line:nth-child(2) .el');//删除指定目标元素的动画
    myAnimation.finished.then(()=>{console.log('动画执行完成的回调');});//动画执行完成的回调
 
    //创建时间轴动画,add一个就执行一个,根据偏移量确定开始执行时间
    anime.timeline({
      duration: 1500,
      delay: 1000,
      easing: 'easeInOutQuad',
      direction: 'alternate',
      loop: true
    })//父时间轴实例中设置的参数将由所有子项继承,可继承下面5个:targets,duration,delay,endDelay,round
    .add({ targets: '.w375',  background: '#FFF',translateX: 50 }, 0) //add第一个参数是对象(同上),第二个参数是偏移量(String/Number)
    .add({ targets: '.normal',  background: '#00F',translateX: 100 }, 1500)//绝对偏移量
    .add({ targets: '.em',  background: '#0F0',translateX: 100 }, '-=600')//相对偏移量
 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值