【问题标题】:Making Jquery.ScrollTo work based on speed instead of duration使 Jquery.ScrollTo 基于速度而不是持续时间工作
【发布时间】:2011-03-16 05:48:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery scroll scrollto horizontal-scrolling


    【解决方案1】:

    您可以说明在一段时间内应该移动多少像素。在本例中为 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();
      });
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用$("element").scrollTop() 获取 scrollTop 值。你可以做一些计算并根据它设置时间长度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        相关资源
        最近更新 更多