如何在滚动到另一个 div 的顶部后显示 div?

How to show a div after scrolling to the top of another div?

我试图让粘性 header 在 div 的顶部被击中时可见,然后在第二个 div 的顶部被击中时不可见

我不知道我的代码有什么问题:

var iconsetTop = $('.icon-sets').offset().top;
var bundleTop = $('.bundle-offer').offset().top;

$(window).on( 'scroll', function(){
    if ((iconsetTop >= $(window).scrollTop()) && (bundleTop >= $(window).scrollTop())){
        $('.set-header').css("top","-20%");
    } else {
        $('.set-header').css("top","0");
    }  
});

我认为使用 && 运算符有问题,但我不知道是什么问题。另外,我创建了 en codepen 来说明:http://codepen.io/jeremyobriot/pen/zqdpyJ

预先感谢您的帮助!

你是说这个? header 仅在红色框内可见。

我做了一个声明,我问 window 的 scrollTop 是否高于 iconset 顶部并低于 bundle 顶部。

var iconsetTop = $('.icon-sets').offset().top;
var bundleTop = $('.bundle-offer').offset().top;

$(window).on('scroll', function() {
  if ($(window).scrollTop() >= iconsetTop && $(window).scrollTop() <= bundleTop) {
    $('.set-header').css("top", "0");
  } else {
    $('.set-header').css("top", "-20%");
  }
});
body {
  margin:0;
}

.set-header {
  height: 50px;
  background-color: black;
  position: fixed;
  width: 100%;
  top: -20%;
}

.space {
  height: 100px;
  background-color: blue;
}

.icon-sets {
  height: 500px;
  background-color: IndianRed;
}

.bundle-offer {
  height: 1000px;
  background-color: pink;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="set-header"></div>
<div class="space"></div>
<div class="icon-sets"></div>
<div class="bundle-offer"></div>