Javascript 使Jquery.scroll基于速度而不是持续时间工作
我正在创建一个水平站点(也可以是任何其他自动滚动站点,如对角线),它使用Jquery.ScrollTo插件中的$.Localscroll子级 这个插件有一个大问题;它根据持续时间计算移动。这意味着从第1页到第2页的转换需要2秒,但是从第1页到第10页的转换也需要2秒,这使得它的转换速度如此之快,转换本身已经不可见了。我不知道会有多少链接,这些链接不会在同一个菜单中,而是分散在不同的页面上Javascript 使Jquery.scroll基于速度而不是持续时间工作,javascript,jquery,scroll,scrollto,horizontal-scrolling,Javascript,Jquery,Scroll,Scrollto,Horizontal Scrolling,我正在创建一个水平站点(也可以是任何其他自动滚动站点,如对角线),它使用Jquery.ScrollTo插件中的$.Localscroll子级 这个插件有一个大问题;它根据持续时间计算移动。这意味着从第1页到第2页的转换需要2秒,但是从第1页到第10页的转换也需要2秒,这使得它的转换速度如此之快,转换本身已经不可见了。我不知道会有多少链接,这些链接不会在同一个菜单中,而是分散在不同的页面上 有没有办法找到当前的scrollto位置(最好是通过插件,所以它是跨浏览器的)并使用散列(#)找到新的scr
有没有办法找到当前的scrollto位置(最好是通过插件,所以它是跨浏览器的)并使用散列(#)找到新的scrollto值,然后根据速度计算持续时间?您可以使用
$(“元素”).scrollTop()获得scrollTop值。您可以进行一些计算,并在此基础上设置时间长度。您可以说在一个持续时间内应移动多少像素。在这种情况下,为50px/10ms
例如:
var scrollOffset = root.scrollTop,
offset = element.offsetTop,
speed = 50;
function scrollLoop() {
if (offset >= scrollOffset) {
return;
}
scrollOffset -= speed;
root.animate({ scrollTop: scrollOffset }, 10, function() {
scrollLoop();
});
}