javascript - Jquery 仅在向下滚动时显示 div

标签 javascript jquery html

当用户向下滚动超过 44 像素时,我的 jQuery 代码会显示一个 div ,而当用户向上滚动超过 44 像素时,该代码会消失。我只想在向下滚动而不是向上滚动时显示 div。

$(document).ready(function() {
  $(window).scroll(function(e) {
    // Variable declaration for search container
    var $src = $('.main-div');

    // Variable declaration for position fixed
    var isPositionFixed = ($src.css('position') == 'fixed');

    // Scroll if statement for position scroll - Scroll down 
    if ($(this).scrollTop() > 44 && !isPositionFixed) {
      $src.css({
        'position': 'fixed',
        'top': '0'
      });
      $('.main-div').show();
    }

    // Scroll if statement for position scroll - Scroll up
    if ($(this).scrollTop() < 44 && isPositionFixed) {
      $src.css({
        'position': 'static',
        'top': '0'
      });
      $(".main-div").hide();
    }
  });
});

最佳答案

鞋底!请尝试此代码。

$(document).ready(function() {
  var prevScrollTop = $(window).scrollTop()
  
  $(window).on('scroll', function(e) {
    // Variable declaration for search container
    var $src = $('.main-div');
    var currentScrollTop = $(this).scrollTop()

    if (currentScrollTop >= prevScrollTop && currentScrollTop > 44) {
      $src.css({
        'position': 'fixed',
        'top': '0'
      });
      $('.main-div').show(200);
    } else {
      $src.css({
        'position': 'static',
      });
      $(".main-div").hide();
    }
    
    prevScrollTop = currentScrollTop
  });
});
.container {
  height: 200vh;
}

.some-content {
  height: 50vh;
  background-color: #cecece;
  padding: 5px;
  text-align: center;
}

.main-div {
  height: 30px;
  background-color: green;
  left: 0;
  right: 0;
  color: #FFFFFF;
  padding: 5px;
  text-align: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="some-content">Try to scroll down</div>
  <div class="main-div" style="display:none;">SOME FIXED HEADER ONLY ON SCROLL BOTTOM</div>
</div>

关于javascript - Jquery 仅在向下滚动时显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57672772/

相关文章:

javascript - 如何在 D3 Js 上下文菜单项旁边显示图像。

javascript - Knockout.js:嵌套会导致重新订阅吗?

javascript - Jquery 滚动到 Div 不工作

jQuery.css ('top' ) 和 IE8

javascript - 是否有适用于元素的 'content' 规则的等效项?

javascript - Javascript 中的 ProcessMessages()

javascript - Js过滤具有1个输入的表的2行

javascript - Mongoose、Node.js 返回一个空数组

javascript - jquery 从数组中删除最后 2 个零

jQuery 忽略子元素事件