Javascript 使Jquery.scroll基于速度而不是持续时间工作

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

我正在创建一个水平站点(也可以是任何其他自动滚动站点,如对角线),它使用Jquery.ScrollTo插件中的$.Localscroll子级

这个插件有一个大问题;它根据持续时间计算移动。这意味着从第1页到第2页的转换需要2秒,但是从第1页到第10页的转换也需要2秒,这使得它的转换速度如此之快,转换本身已经不可见了。我不知道会有多少链接,这些链接不会在同一个菜单中,而是分散在不同的页面上


有没有办法找到当前的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();
  });
}