Как побороть position:fixed на IOS?

Есть вертикальный блок на 100vh, при прокрутке до него он должен фиксироваться на экране и при прокрутке обратно до него возвращаться на свое место. Для этого использую плагин sticky.js Но position:fixed на IOS на стары смарфонах ведет себя не совсем адекватно.
Хорошее решение есть на хабре, но вместе с плагином оно не совсем совместимо.

На десктопе работает нормально только при прокрутке в низ, на мобильном "скачет", а если попытаться прокрутить обратно вверх, начинается вакханалия.

Пример ТУТ (на разрешении менее 750px)
  • Вопрос задан
  • 1295 просмотров
Пригласить эксперта
Ответы на вопрос 1
Работающий говнокод. Может его использовать?

jQuery(function() {
        var box = jQuery('.example'); // float-fixed block
        var top = box.offset().top - parseFloat(box.css('marginTop').replace(/auto/, 0));
        jQuery(window).scroll(function(){
            var windowpos = jQuery(window).scrollTop();
            if(windowpos < top) {
                box.css('position', 'static');
            } else {
                box.css('position', 'fixed');
                box.css('top', 0);
            }
        });
    });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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