JS 流行库(十二):Velocity

JS 流行库(十二):Velocity

Velocity 是一个简单易用、性能极高、功能丰富的轻量级 JavaScript 动画库,可以和 jQuery / Zepto 完美协作,并且和 $.animate() 有相同的 API,即使不依赖 jQuery 也可以单独使用,此外,Velocity 也支持 transform 相关的动画等额外功能

基本使用

  1. 导入 Velocity 动画库
<script src="./js/velocity.js"></script>
  1. HTML
<div class="box"></div>
  1. JavaScript
let oDiv = document.querySelector(".box");
Velocity(oDiv, {
    marginLeft: "500px"
}, {
    duration: 3000
})

上述示例也可以以 jQuery 风格编写,示例如下:

$(".box").velocity({
    marginLeft: "500px"
}, {
    duration: 3000
})

必须注意的是,在导入框架时,必须先导入 jQuery 库,后导入 Velocity 库

如果想为多个元素添加动画,那么所有元素必须能够以某种方式被同时选中,被传入的所有元素将同时执行此动画,示例如下:

  • HTML
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
  • JavaScript
let oDivs = document.querySelectorAll("div");
Velocity(oDivs, {
    marginLeft: "500px"
}, {
    duration: 3000
})

如果使用 Velocity 1.X 版本(目前最新为 2.X 版本),那么可以以数组的形式传入待执行动画的元素,示例如下:

let oDivs = document.querySelectorAll("div");
Velocity([".box1", ".box2", ".box3"], {
    marginLeft: "500px"
}, {
    duration: 3000
})

动画属性

类似于所有的动画库,为元素添加动画时可以设置动画属性,Velocity 同样也不例外,内容如下:

属性类型描述
durationNumber持续时间(单位:毫秒)
delayNumber延迟时间(单位:毫秒)
loopNumber循环次数
easingString动画效果(easeInOutQuint 等)

示例如下:

  • HTML
<div class="box"></div>
  • JavaScript
$(".box").velocity({
    marginTop: "500px"
}, {
    duration: 3000,
    delay: 1000,
    loop: 2,
    easing: "easeInOutQuint"
})

动画事件

类似于所有的动画库,为元素添加动画时可以监听动画事件,Velocity 同样也不例外,内容如下:

事件描述
begin开始
complete结束
progress执行

示例如下:

  • HTML
<div class="box"></div>
  • JavaScript
$(".box").velocity({
    marginLeft: "500px"
}, {
    duration: 3000,
    begin: function (elements) {
        console.log("Begin", elements);
    },
    complete: function (elements) {
        console.log("Complete", elements);
    },
    progress: function (elements, complete, remaining, start, tweenValue) {
        console.log((complete * 100) + "%");
    }
})

所有事件监听的回调函数都将正在执行动画的元素作为参数传入,此外,progress 事件的回调函数有额外的参数,详情可以访问官网

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值