【问题标题】:Hiding header on scrolling down/showing on scrolling up向下滚动时隐藏标题/向上滚动时显示
【发布时间】:2016-08-18 16:27:29
【问题描述】:

我的这个脚本工作得几乎很好,但是由于某种原因,当向上滚动时,标题会在一秒钟后重新出现。为什么?我想不通。

这是我的例子https://jsfiddle.net/wg8zv95f/

这里是原脚本http://jsfiddle.net/mariusc23/s6mLJ/31/

$(document).ready(function() {

  var didScroll;
  var lastScrollTop = 0;
  var delta = 5;
  var headerContainer = $('#header');
  var navbarHeight = headerContainer.outerHeight();

  $(window).scroll(function(event) {
    didScroll = true;
  });

  setInterval(function() {
    if (didScroll) {
      hasScrolled();
      didScroll = false;
    }
  }, 250);


  function hasScrolled() {
    var st = $(this).scrollTop();

    // Make sure they scroll more than delta
    if (Math.abs(lastScrollTop - st) <= delta)
      return;

    // If they scrolled down and are past the navbar, add class .nav-up.
    // This is necessary so you never see what is "behind" the navbar.
    if (st > lastScrollTop && st > navbarHeight) {
      // Scroll Down
      headerContainer.removeClass('slideInDown').addClass('fadeOutUp');
    } else {
      // Scroll Up
      if (st + $(window).height() < $(document).height()) {
        headerContainer.removeClass('fadeOutUp').addClass('slideInDown');
      }
    }

    lastScrollTop = st;
  }


});

CSS

header {
  position: fixed;
  width: 100%;
  animation-duration: 0.8s;
  z-index: 99999;
}

【问题讨论】:

    标签: jquery animate.css


    【解决方案1】:
    headerContainer.removeClass('slideInDown').addClass('fadeOutUp').slideUp();
    headerContainer.removeClass('fadeOutUp').addClass('slideInDown').slideDown();
    

    将此添加到您的脚本中

    .slideInDown {
        animation-name: slideInDown;
    }
    .fadeOutUp {
        animation-name: fadeOutUp;
    }
    

    删除此样式

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多