@JustFeeLin
Начинающий веб-мастер

Как скрыть меню при прокрутке на iPhone?

Спасибо, что обратили внимание на мой вопрос!

Прошу не пинать, не материть и не впадать в уныние от увиденного кода.
Опыта в верстке, jQuery и JS практически нет вообще - самая база.

Ситуация следующая.

Имею jQuery-код:

var lastScrollTop = 0;

jQuery(window).scroll(function(event) {
    var st = jQuery(this).scrollTop();

    if (st > lastScrollTop && st > jQuery('#frontpage').outerHeight(true) + jQuery('header').outerHeight(true)) {
            jQuery('header').css('opacity', '0');
            jQuery('header').css('z-index', '0');
        }
        else {
            jQuery('header').css('opacity', '1');
            jQuery('header').css('z-index', '1');
        }

    lastScrollTop = st;
});


При скролле вниз и после определенной высоты скрывается header с меню, а при скролле вверх, меню отображается.

На Android, в Edge, Chrome, Mozilla все прекрасно срабатывает.

Но это... не работает на iPhone. Задачу поставили "почини скрытие меню на Iphone".
Проверяю в инспекторе - в адаптивке под iPhone тоже не работает, а для android устройств и просто Responsive все работает отлично.

Убил целый день, на поиск инфы, различные манипуляции... Без толку.

При этом есть скрипт на изменение высоты блока, а также переназначение ее при ресайзе. Этот скрипт работает и на iOs

Пробовал window.addEventListener - не работает.

Нашел информацию, что на iphone не работает само событие скролла.

Заметил также забавную штуку, что после открытия модального окошка через кнопку (заказ обратного звонка) в инспекторе хрома скрытие меню начинает работать. На реальном iPhone не тестил...

Как сие победить?
  • Вопрос задан
  • 970 просмотров
Пригласить эксперта
Ответы на вопрос 1
Exploding
@Exploding
wtf?
Вот так надо:
jQuery(document).on("touchstart", function(e) {

    //Кручу-верчу, ... Показываем, скрываем... Где шарик? Вот он шарик!
    // И всё-таки может не opacity скрывайте, а другим чем то?
    // А то получается: видишь меню? Нет, не видишь? А оно есть!))
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы