4

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

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

有没有办法找出当前的滚动位置(最好通过插件,所以它是跨浏览器的)并使用哈希(#)找出新的滚动值,然后根据速度计算持续时间?

4

2 回答 2

1

您可以使用 获取 scrollTop 值$("element").scrollTop()。您可以进行一些计算并基于此设置时间长度。

于 2010-07-15T06:27:50.880 回答
0

您可以说在一段时间内应该移动多少像素。在本例中为 50 像素/10 毫秒。

例如。:

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

function scrollLoop() {

  if (offset >= scrollOffset) {
  return;
  }

  scrollOffset -= speed;

  root.animate({ scrollTop: scrollOffset }, 10, function() {
    scrollLoop();
  });
}
于 2012-01-04T16:58:30.860 回答