大家好! 我试图在用户滚动到另一个div时显示div,并在用户到达后一个div的开头时再次隐藏它。 比方说,我们有两个ID为#1和#2的div。现在,当用户滚动到#1的开头时,显示div#2。当用户再次回到#1时,div#2被隐藏。我怎样才能做到这一点?
我正在使用它:
jQuery(window).scroll(function(){
y = jQuery(window).scrollTop();
if(y>0){
jQuery("#2").slideDown();
}
if(y==0){
jQuery("#2").slideUp();
}
});
非常适合在窗口上滚动。但这不起作用:
jQuery(window).scroll(function(){
y = jQuery("#1").scrollTop();
if(y>0){
jQuery("#2").slideDown();
}
if(y==0){
jQuery("#2").slideUp();
}
});
我做错了吗?非常感谢。
答案 0 :(得分:1)
想想scrollTop对div#1的影响。你说,如果y > 0
。除非div1本身是可滚动的,否则它将始终为零。你真正想要的是窗口是否低于div1。所以我们使用
//top of window is at
jQuery(window).scrollTop();
//top of div1 is at (relative to window)
jQuery('#1').offset().top;
//your code should look like this instead
jQuery(window).scroll(function(){
y = jQuery(window).scrollTop();
if(y>jQuery('#1'.offset().top)){
jQuery("#2").slideDown();
}
else{
jQuery("#2").slideUp();
}
});