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

4
我正在创建一个水平网站(也可以是任何其他自动滚动的网站,例如斜线),该网站使用Jquery.ScrollTo插件的$.Localscroll子级。
这个插件有一个很大的问题; 它基于持续时间计算移动。这意味着从页面1到2的过渡需要2秒钟,但从页面1到10的过渡也需要2秒钟,使得过渡非常快,过渡本身几乎不可见。我不知道会有多少链接,而且链接不会在同一菜单中,而是分散在页面上。
是否有一种方法可以通过插件找出当前的scrollto位置(最好是跨浏览器的),并使用哈希符号(#)找出新的scrollto值,然后根据速度计算持续时间?
2个回答

1

你可以使用 $("element").scrollTop() 获取 scrollTop 值。你可以进行一些计算,并根据计算结果设置时间长度。


0

您可以指定在一段时间内应该移动多少像素。在此示例中为50px/10ms。

eg.:

var scrollOffset = root.scrollTop,
    offset       = element.offsetTop,
    speed        = 50;

function scrollLoop() {

  if (offset >= scrollOffset) {
  return;
  }

  scrollOffset -= speed;

  root.animate({ scrollTop: scrollOffset }, 10, function() {
    scrollLoop();
  });
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接