jQuery滚动问题

时间:2011-09-06 03:40:19

标签: javascript jquery dom scroll

大家好! 我试图在用户滚动到另一个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();
        }
    });

我做错了吗?非常感谢。

1 个答案:

答案 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();
    }
});