anime动画库

安装

npm install animejs --save

引入

我是在vue项目下

import anime from 'animejs/lib/anime.es.js';

更多下载和引用可以查看官网

GitHub - juliangarnier/anime: JavaScript animation engine

基础示例

需要动画的元素

<section>
  <div class="box">1</div>
  <div class="box">2</div>
  <div class="box">3</div>
  <div class="box">4</div>
</section>

引入anime实例,可以直接使用

let boxs = document.querySelectorAll(".box");
anime({
  targets: boxs,
  translateX: '250px',
})

targets 为选中的 dom,单个或者数组,也可是直接写 css选择器

两行代码的效果就是,boxs 选中的dom ,会向 x 轴移动 250px

类似的值(宽高、缩放、位移等等)都可以选择带不带单位,百分比,也支持数组,混用,比如我们需要,元素在开始的时候在 y轴 200px 的位置,动画结束后,回到原位可以这样写:

translateX: ['200px',0],

可以编辑数字,innerHTML,设置步长,小数点位数

      innerHTML: [0, 1000],
      step: [10],
      round: 1, // 为1的时候显示整数

也支持动画属性,按顺序播放,使用 duration 指定每一个动画属性的持续时间

  translateX: {
    value: 250,
    duration: 800
  },
  rotate: {
    value: 360,
    duration: 1800,
    easing: 'easeInOutSine'
  },

上面代码的效果:先x轴位移,持续800毫秒,之后再进行旋转,1800毫秒

动画播放模式

direction:'xxxx'
属性描述
'normal'动画进度从 0% 变为 100%
'reverse'动画进度从 100% 变为 0%
'alternate'动画进度从 0% 变为 100%,然后返回到 0%
loop: 3,
属性描述
Number迭代次数
true无限期循环

 anime.stagger

如果你需要多个元素,各自按不同的处理进行动画,你就需要  anime.stagger

delay: anime.stagger(100)
delay: anime.stagger(100, {start: 500})
rotate: anime.stagger([-360, 360])

三个例子:

1. 延迟按照,第一个 盒子 100*0,第二个盒子 100*1

2.附带开始延迟:第一个 盒子 500+(100*0),第二个盒子 500+(100*1)

3.数组 平均分配给元素, 比如两个元素,第一个就是 -360 第二个就是 360

anime.stagger 第二个参数对象 也可选 from

delay: anime.stagger(400, { from: "center" })

center 比如有4个元素被选中, 动画从 中间的两个元素先开始

例:

<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>

let boxs = document.querySelectorAll(".box");
anime({
  delay: anime.stagger(400, { from: "center" })
});

 盒子 2 3 先进行动画,随后是 1和4

还有 easing  direction  grid 等等,可有类似波纹特效

更多动画选项可以查看官方文档:

Documentation | anime.js (animejs.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值