所以我认为这是一个非常直截了当的问题,但我找不到我在这里寻找的正确答案。如果以前曾问过这个问题,请原谅我。
我有一个section id="front-page-item-4"
部分。在这个section
中,我有一个名为about-us-short
的div。滚动浏览about-us-short
时,我希望得到div fade-in
front-page-item-4
。我发现了这段代码,但这只会消除div about-us-short
,而不是当我滚过front-page-item-4
时。
我做错了什么?看起来这段代码正在寻找div height
的{{1}},但我不知道这个div的高度,也不知道偏移...
front-page-item-4
先谢谢你的帮助......
答案 0 :(得分:1)
如果你动态获得特定div的偏移顶部,那么优雅的解决方案就是#front-page-item-4
。然后,如果已达到元素的偏移顶部,则可以检查$(window).scroll()
方法。如果是,则淡化您想要的div about-us-short
in。
要获取元素的偏移量,您可以使用jQuery offset()方法。
<强> HTML 强>
<section id="first">
<h1>First</h1>
</section>
<section id="second">
<h1>Second</h1>
<div id="show">Second div reached. Show me</div>
</section>
<强> CSS 强>
#first{
height: 200px;
background: #eee;
}
#second{
height: 800px;
background: rgba(0,0,0,0.3);
}
#show{
display: none;
}
<强>的jQuery 强>
var offsetTop = $("#second").offset().top;
$(window).scroll(function(){
var scrollTop = $(window).scrollTop();
if(scrollTop > offsetTop){
$("#show").fadeIn(200);
}
});
var offsetTop = $("#second").offset().top;
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
if (scrollTop > offsetTop) {
$("#show").fadeIn(200);
}
});
#first {
height: 200px;
background: #eee;
}
#second {
height: 800px;
background: rgba(0, 0, 0, 0.3);
}
#show {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="first">
<h1>First</h1>
</section>
<section id="second">
<h1>Second</h1>
<div id="show">Second div reached. Show me</div>
</section>