2011-09-06 141 views
0

大家好! 我想顯示一個div當用戶滾動過另一個div,並在用戶到達後面的div的開始時再次隱藏它。 假設我們有兩個ID爲#1和#2的div。現在,當用戶滾動到#1的開頭時,顯示div#2。當用戶再次回到#1時,div#2被隱藏。我怎樣才能做到這一點?jQuery滾動問題

我用的是這樣的:

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

我做錯了嗎?非常感謝。

+2

你有一個語法錯誤,Y =的jQuery( 「#1).scrollTop();應爲y =的jQuery(」 #1" )scrollTop的(); – VNO

+0

@Vibhu,謝謝。更正。 – abhisek

回答

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(); 
    } 
}); 
+0

我編輯了我的答案。忘記糾正你的if語句的後半部分。 – mrtsherman

+0

Thanks!It works。:-) – abhisek

+0

不客氣! – mrtsherman