【问题标题】:Jquery, scrollTop == overscrolled?Jquery,scrollTop ==过度滚动?
【发布时间】:2018-01-10 12:48:43
【问题描述】:

我想在我的$(window).scrollTop == 500 时开始一个活动。如果我滚动慢,它会起作用,但如果我滚动快,什么也不会发生。你有什么想法可以解决我的问题吗?

谢谢。

【问题讨论】:

    标签: jquery scrolltop


    【解决方案1】:

    当元素滚动的每个像素触发scroll 事件时,就会发生这种情况。这可能意味着事件处理程序在一秒钟内被触发数百次,因此浏览器将根据 UI 线程的滴答率“跳过”其中一些事件。

    这意味着它可能仅在滚动时检测某些 scrollTop 值,因此在给定您的代码示例时,scrollTop 只能在 480499522 读取。因此,即使用户滚动超过 500 像素,您对 == 500 的测试也不会成功。慢速滚动会减轻这种影响,因此它对您有效。

    解决方案是通过检查一系列 scrollTop 值来使您的代码更加健壮,例如在您的示例中使用 > 而不是 =

    if ($(window).scrollTop >= 500) {
      console.log('You have scrolled down over 500px');
    }
    

    【讨论】:

    • 感谢您的回答。这行得通,但我遇到了另一个问题。我的 if 语句存在于 window.scroll 函数中,并且事件启动不止一次
      $(window).scroll(function(){ var absstandOben = $(window).scrollTop(); var scrollvariable = 500; if(abstandOben >= scrollvariable){ $("#nachladen").load("nachladen.php", { neueBeitragAnzahl: beitragAnzahl }); } });
    • 在这种情况下,您需要重新安排逻辑以使用此“大于”检查。我建议您对此提出一个新问题。不过,请确保包含所有相关代码。
    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2014-07-31
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多