У меня есть два отдельных сценария, которые управляют одним и тем же элементом. Проблема в том, что второй скрипт использует .stop
, когда пользователь прокручивает. Первый скрипт заставляет элемент div прокручиваться вниз от верхней части страницы на 50 пикселей за 1 секунду. Если пользователь прокручивается до того, как наступает одна секунда, поле div не будет прокручиваться полностью вниз.JQuery анимация игнорировать .stop
Есть ли способ предотвратить этот фрагмент кода, отвечающий на .stop
, или, возможно, еще один способ написать его без использования анимации?
$(document).ready(function(){
$('ul.undermenu').animate({'margin-top': '52px'}, 1000);
});
Кусок кода с .stop
, который вызывает первый не работает, когда пользователь прокручивает:
var previousScrollTop = 0;
$(window).bind('scroll', function() {
var viewportWidth = $(window).width(),
scrollTop = $(window).scrollTop();
if (scrollTop > 60) {
if(previousScrollTop <= 60) {
$("li.um").fadeOut(300);
$("ul.undermenu").stop(true, false).animate({width:'160px'}, { duration: 500, queue: true});
$("ul.undermenu").animate({height:'60px'}, { duration: 200, queue: true});
window.setTimeout(function() {
$('li.um').html('12345678901 [email protected]');
}, 400);
$("li.um").fadeIn(1000);
$("ul.undermenu").addClass("border");
}
} else if (previousScrollTop > 60) {
$("li.um").fadeOut(300);
$("ul.undermenu").stop(true, false).animate({height:'22px'}, { duration: 200, queue: true});
$("ul.undermenu").animate({width:viewportWidth}, { duration: 500, queue: true});
window.setTimeout(function() {
$('li.um').html('Email: [email protected] | Call: 12345678901 | Call: 01290923876');
}, 400);
$("li.um").fadeIn(1000);
$("ul.undermenu").removeClass("border");
}
previousScrollTop = scrollTop;
});
Вы можете поделиться своим кодом? – Anubhav
Добавлено в исходный вопрос –
Где первый скрипт? – Anubhav