Как заставить функционал scrolltop() работать с Mmenu
Я использую меню jQuery, чтобы добавить меню вне холста на мой сайт. Перед установкой у меня была кнопка прокрутки вверх и скользящая панель навигации, которая основывалась на получении смещения от $(window).scrollTop();
чтобы вызвать их. Я заметил, что mmenu, кажется, мешает найти смещение окна. Когда я запустил следующий код:
var offset = $(window).scrollTop();
$(window).scroll(function(){
console.log(offset);
});
и, проверив консоль Chrome DevTools, я заметил, что, хотя она выводит смещение, кажется, что есть переопределенное смещение, равное 0, независимо от визуального положения окна и полосы прокрутки.
Вместо этого я попытался найти смещение других элементов, но все равно получаю тот же вывод в консоли.
В конечном счете, я бы хотел, чтобы кнопка прокрутки вверх и скользящая панель навигации срабатывали после прокрутки пользователем вниз.
Мой код для них выглядит следующим образом:
$(window).scroll(function(){
/* slide-down navigation bar */
if($('.bar').css('z-index') == '30' && offset > 50 ){
$('#secondary-nav-wrap').addClass('slideDown');
}else{
$('#secondary-nav-wrap').removeClass('slideDown');
}
/* fade in jump to top button */
if (offset >= 200) {
$('#top-jump').fadeIn(400);
}else{
$('#top-jump').fadeOut(400);
}
});
1 ответ
Ваша переменная смещения инициализируется при загрузке страницы и не изменяется. Вот почему это всегда 0.
Делать:
$(window).scroll(function(){
var offset = $(window).scrollTop();
console.log(offset);
});