calculate 方法用于计算滚动条的位置和滚动目标元素的位置,并通过动画滚动到目标位置。该方法执行时会触发 start 事件和 end 事件。
seekBehavior.calculate(target, duration, offset);
target:目标元素,可以是一个 HTML 元素或者是一个 jQuery 对象。duration:动画持续时间,单位毫秒。默认值为 500。offset:目标元素的偏移量,即滚动至目标元素时,相对于元素顶部的距离。默认值为 0。<!-- HTML 结构 -->
<div id="container">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
</div>
// 初始化
var yuka = new Yuka('#container');
// 绑定事件
yuka.bind('start', function() {
console.log('开始滚动');
}).bind('end', function() {
console.log('滚动结束');
});
// 执行 calculate 方法
yuka.seekBehavior.calculate($('#container li:eq(2)'), 1000, 100);
在执行 calculate 方法时,会触发两个事件:start 事件和 end 事件,分别表示滚动开始和结束。可以通过 bind 方法来绑定这两个事件。
yuka.bind('start', function() {
console.log('开始滚动');
}).bind('end', function() {
console.log('滚动结束');
});
start 事件会在滚动开始时触发,它没有任何参数。
end 事件会在滚动结束时触发,它没有任何参数。
如果 target 参数不是一个有效的元素,则会抛出一个异常。
如果 duration 参数不是一个有效的数字,则默认为 500 毫秒。
如果 offset 参数不是一个有效的数字,则默认为 0。