我正在制作一个非常规的网站,水平滚动非常远的距离。我注意到jQuery的缓动函数在滚动距离的长度范围内延伸。它加速的持续时间似乎是它需要滚动的距离的固定部分。例如,它可以在距离的前1/5加速,以恒定速率滚动3/5,然后减速剩余的1/5。这使得在长距离滚动时加速更加缓慢。有什么方法可以让它在一定时间内加速,无论它需要滚动的距离是什么?
如果有帮助,这是我的代码的一部分
$('tbody.travelTo a').click(function(){
$('html, body').animate({
scrollLeft: $( $.attr(this, 'href') ).offset().left - 1/2 * $(window).width() + 1/2 * $( $.attr(this, 'href') ).width()
}, $( $.attr(this, 'href') ).offset().left / travelRate, 'swing');
return false;
});
答案 0 :(得分:0)
您可以使用animate
方法设置持续时间。 API
像这样的东西
.animate(
{scrollTop:'300px'},
300, //duration is the 2nd parameter (default - 400ms)
swing,
function(){
alert(animation complete! - your custom code here!);
}
)
或者你总是可以编写自己的缓动方法
jQuery.easing.method(
null,
current_time,
start_value,
end_value,
total_time
)
有用的链接 - http://forrst.com/posts/How_to_create_custom_jQuery_easing_functions-OKb