2013-12-19 3 views
1

На моей странице после 5 секунд происходит сбой div с функцией setTimeout, а также, если пользователь прокручивает, div сворачивается. Я использую slideUp и slideDown. Если таймаут запущен, div закрывается, но если пользователь прокручивает div, открывается и затем снова закрывается. Я хочу, чтобы отключить открытие первого DIV с свитком, если DIV автоматически закрывается функцией SetTimeoutJquery disable toggle 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 и в консоли я был на этом ошибку позиционирования TypeError: $ (...) на это не функция TypeError:.. $ (...) от не function – user3118514

+0

поэтому используйте bind() вместо on() и unbind() вместо off() или лучше, обновите jquery до более новой версии ... Нет смысла использовать jq 1.5. Для поддержки старых плагинов используйте jquery migrate для их обновления. –

+0

Хорошо для ошибки, но теперь, если div исчезает с setTimeout, если я прокручиваю вниз, а после вершины div не появляется – user3118514

Смежные вопросы