代码之家  ›  专栏  ›  技术社区  ›  xaddict

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

  •  4
  • xaddict  · 技术社区  · 14 年前

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

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Fabian    14 年前

    您可以使用 $("element").scrollTop() . 你可以做一些计算,并在此基础上设置时间长度。

        2
  •  0
  •   Burntime    13 年前

    你可以说在一段时间内应该移动多少像素。在这种情况下,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();
      });
    }