2013-12-19 52 views
1

在我的網頁5秒,一個div崩潰與setTimeout函數,以後也當用戶滾動時,div合攏。我使用slideUp和slideDown。 如果超時開始,div被關閉,但如果用戶滾動div打開然後再次關閉。我想禁用滾動的第一個div的開放,如果該div由setTimeout函數自動關閉jQuery的禁用切換DIV如果超時

<div class="divCollapse">Text here</div> 

$(document).ready(function() {   
     var timer; 
     if(!$(window).scrollTop()) {  
     timer = setTimeout(function(){ $('.divCollapse').slideUp();}, 5000); 
     } 
     $(window).scroll(function() {    
       if ($(this).scrollTop()>10){      
        $('.divCollapse').slideUp(); 
        clearTimeout(timer); 
       } 
       else{      
        $('.divCollapse').slideDown();       
       }   
     });   
    }); 

謝謝您提前!

回答

0
var timer; 
if ($(window).scrollTop() <= 10) { 
    timer = setTimeout(function() { 
     $('.divCollapse').slideUp(); 
    }, 5000); 
} 
$(window).bind('scroll.collapse', function() { 
    if ($(this).scrollTop() > 10) { 
     $('.divCollapse').slideUp(); 
     clearTimeout(timer); 
     timer = false; 
    } else if (!timer) { 
     $('.divCollapse').slideDown(); 
    } 
}); 
+0

我的JQuery的版本是1.5,控制檯我這個錯誤 類型錯誤:$(...)上不是一個函數 類型錯誤:$(...)關閉不是函數 – user3118514

+0

所以使用bind()而不是on()和unbind()而不是off(),或者更好的方法是將jquery升級到更新的版本......沒有理由繼續使用jq 1.5。爲了支持老的插件,使用jQuery遷移到它們升級 –

+0

好了錯誤,但現在如果DIV與setTimeout的消失,如果我向下滾動,頂後的股利不出現 – user3118514