文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Arguments 参数
参数概述和基础写法
Velocity 接收一组 CSS 属性键值对 (css map) 作为它的第一个参数,该参数作为动画效果的最终属性。第二个参数是可选参数 为动画的额外配置项。下面为参数的写法:
$element.velocity({
width: "500px", // 动画属性 宽度到 "500px" 的动画
property2: value2 // 属性示例
}, {
/* Velocity 动画配置项的默认值 */
duration: 400, // 动画执行时间
easing: "swing", // 缓动效果
queue: "", // 队列
begin: undefined, // 动画开始时的回调函数
progress: undefined, // 动画执行中的回调函数(该函数会随着动画执行被不断触发)
complete: undefined, // 动画结束时的回调函数
display: undefined, // 动画结束时设置元素的 css display 属性
visibility: undefined, // 动画结束时设置元素的 css visibility 属性
loop: false, // 循环
delay: false, // 延迟
mobileHA: true // 移动端硬件加速(默认开启)
});
单一对象的参数写法
Velocity 也支持 single-argument 的语法,看下面示例:
$element.velocity({
properties: { opacity: 1 },
options: { duration: 500 }
});
// 或者:
$element.velocity({
p: { opacity: 1 }, // 可以将 properties 简写成 p
o: { duration: 500 }
});
逗号分割的参数写法(类似 $.animate)
$element.velocity({ top: 50 }, 1000);
$element.velocity({ top: 50 }, 1000, "swing");
$element.velocity({ top: 50 }, "swing");
$element.velocity({ top: 50 }, 1000, function() { alert("Hi"); });
单位
如果不写属性值的单位, Velocity 会将像素(px)作为默认单位
// 等同 padding: 1px
$element.velocity({ padding: 1 });
// 等同 padding-left: 1px, padding-right: 1px
$element.velocity({
paddingLeft: 1,
paddingRight: 1
});
// 不能这样写!因为这样相当于为 padding 赋了多个值
$element.velocity({ padding: "1 1 1 1" }); // error
Velocity 在 1.2.0+ 版本里增加了对 "px, em, rem, %, deg, vw/vh" 这些单位的支持。如果不填写属性单位,默认单位还是"px",但 "deg" 用于 rotateZ 属性时可以省略不写
计算属性
Velocity 还支持动态计算属性值,包括 "+, -, *, /",还可以设置元素在动画执行前的初始值
[注意]"rem" 只支持 IE9+,"vh/vw" 只支持 IE9+ 和 Android 4.4+
$element.velocity({
top: 50, // 等同于 "50px"
left: "50%",
width: "+=5rem", // 每次在当前值上叠加 5rem
height: "*=2" // 每次在当前值上叠乘 2
color: ["#888", "#000"] // 每次动画执行前,color 的初始值都为"#000"(从"#000"过渡成"#888")
});
链式动画
当一个元素连续应用多个velocity()时,动画将以队列的方式执行
$element
/* 先执行宽度变为75px的动画 */
.velocity({ width: 75 })
/* 等前面的宽度动画结束后,再执行高度变为0的动画 */
.velocity({ height: 0 });
下面是一个例子
<button id="btn">开始运动</button>
<button id="reset">还原</button>
<div id="test" style="height:100px;width:150px;background:pink;position:absolute;left:0;"></div>
<script src="jquery-1.10.0.js"></script>
<script src="velocity.min.js"></script>
<script>
reset.onclick = function(){history.go();}
btn.onclick = function(){
$('#test').velocity({left:200}, {duration:500,complete:function(el){
el[0].style.backgroundColor = 'lightblue';
el[0].innerHTML = '小火柴';
}}).velocity({width:300})
}
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论