Я использую slideToggle, чтобы мой заголовок перемещался со страницей, когда scrollTop попал в 100. Но как только полоса прокрутки достигает 100 и более, она продолжает анимацию вверх и вниз в течение нескольких минут. Вот мой код:slideToggle анимирует div вверх и вниз непрерывно
$(window).scroll(function(){
var ScrollTop = $(window).scrollTop();
if(ScrollTop>=100){
$('#main_header').removeClass("relative");
$('#main_header').addClass("fixed");
$('#main_header').slideToggle("slow");
}else if(ScrollTop<=99){
$('#main_header').removeClass("fixed");
$('#main_header').addClass("relative");
}
});
пожалуйста, дайте мне знать, что это не так?
Вы можете воссоздать проблему на https://jsfiddle.net –
Кажется, вы должны использовать [ 'stop()'] (http://api.jquery.com/stop/), т.е. '$ ('# main_header'). stop (true) .slideToggle (" slow ");' – Satpal
Это происходит потому, что когда вы добавьте класс «fixed» в свой заголовок, он вытащит из потока страницы, и, следовательно, прокрутка снова будет равна высоте заголовка. Теперь состояние прокрутки изменилось, поэтому он удалил класс «fixed». После добавления свиток снова больше порога. Вот почему он продолжает двигаться вверх и вниз, когда вы находитесь в этом диапазоне. После того, как вы перешли этот диапазон, когда добавление/удаление высоты заголовка не изменяет условия прокрутки, оно начинает работать нормально. –