使用 scroll throttle, 遇到问题,求帮助

发布于 2022-09-11 22:54:18 字数 1517 浏览 25 评论 0

遇到问题的网址
https://jerryc.me/posts/20bbe8ff/

在手机上(我测试的safari)当我向上快速滑动时,原本page-header应该是在银幕外的,但是不知道为什么,现在page-header出现在银幕内,一闪一闪。。直接用scroll 不用throttle时,运行正常

image

function throttle(func, wait, mustRun) {
  var timeout
  var startTime = new Date()

  return function () {
    var context = this
    var args = arguments
    var curTime = new Date()

    clearTimeout(timeout)
    if (curTime - startTime >= mustRun) {
      func.apply(context, args)
      startTime = curTime
    } else {
      timeout = setTimeout(func, wait)
    }
  }
};

 // main of scroll
  $(window).scroll(throttle(function (event) {
    var currentTop = $(this).scrollTop()
   
    var isUp = scrollDirection(currentTop)

    if (currentTop > 56) {
      if (isUp) {
        $('#page-header').hasClass('visible') ? $('#page-header').removeClass('visible') : console.log()

      } else {
        $('#page-header').hasClass('visible') ? console.log() : $('#page-header').addClass('visible')
      }
      $('#page-header').addClass('fixed')

     
    } else {
      if (currentTop === 0) {
        $('#page-header').removeClass('fixed').removeClass('visible')
      }

    }

  }, 50, 100))

css
image.png
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅黛梨妆こ 2022-09-18 22:54:18

throttle 函数写错了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文