到达 div 底部时更改背景

Changing background when the bottom of a div is reached

我正在制作一个视差风格的网站,我希望 div 的背景图像 属性 在到达宽度为 100% 的 div 底部时发生变化的 window。我如何检测 div 的底部已被 javascript/jquery 滚动到?这看起来很明显,但我尝试过的任何事情都没有产生积极的结果。

我可以只使用 scrollTop() 并引用 div 底部所在的确切像素,但我希望它能够响应并且能够在 [=16= 的大小时更改] 变化。

试试这个:

`$().scrollTop()`//how much has been scrolled
`$().innerHeight()`// inner height of the element

因此,您可以对 div 的前两个属性求和,当它等于滚动的 windows 时,您就到达了终点:

$(window).bind('scroll', function() {
  if($(window).scrollTop() >= $('#myDiv').scrollTop() + $("#myDiv").innerHeight() ) {
       $("#myDiv").css("background","red");
  }
});
body{
height:900px;
}

div {
height:200px;

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<div >
Div 1
</div>
<div id="myDiv">
Div 2
</div>
<div >
Div 3
</div>
</body>
</html>