Advanced 高级用法

1. Value Functions

属性值可通过传递一个函数来设置动画效果

JavaScript
// 使 $element 的透明度随机到一个值 的动画,每次执行后 元素透明度都不同
$element.velocity({
    opacity: function() { return Math.random() }
});
JavaScript
$element.velocity({
    translateX: function(i, total) {
        /* 生成 translateX' 的结束值 */
        return i * 10;
    }
});

2. Forcefeeding

通常,在动画执行前 动画引擎会先查询 DOM 以确定元素的初始值, Velocity 可以让用户自定义元素初始值 这样可以避免 DOM 查询。看下面示例:

JavaScript
$element.velocity({
    /* translateX 初始值永远为0 动画结束值为500px */
    translateX: [ 500, 0 ],
    /* opacity 初始值永远为0 动画结束值为1 缓动效果为"easeInSine" */
    opacity: [ 0, "easeInSine", 1 ]
});
JavaScript
$element
    /* 对于这个链式动画,在每次动画开始前 元素的 translateX 初始值还是0 */
    .velocity({ translateX: [ 500, 0 ] })
    .velocity({ translateX: 1000 });