nepster-web
@nepster-web

Почему событие scroll работает по разному на разных устройствах?

Есть задача сделать следующее:
Прилипающая шапка, прилипающий блок слева и справа. Таким образом, что все всегда статично кроме центрального блока.

Выглядит это так:
c241fda683904d0298aadbb72289848a.jpg

Я не использовал position fixed, так как если появляется горизонтальный скрол, получается не хорошие ситуации.
В место этого был использован следующих способ:

var targetClassifierElemet = $('.classifier-block');
var targetSalesElemet = $('.sales');

targetClassifierElemet.css('top',+$(window).scrollTop());
targetSalesElemet.css('top',+$(window).scrollTop());

$(window).scroll(function(){
    targetClassifierElemet.css('top',+$(window).scrollTop());
    targetSalesElemet.css('top',+$(window).scrollTop());
});


Проблемы возникают тут:
На всех мобильных устройствах и сафари под маком, блоки не стот статично как в остальных браузерах, а доплывают. Тоесть очень мерзго дергаются, такое ощущение что scroll срабатывает 1 раз в самом конце.

Подскажите пожалуйста как это можно исправить?
  • Вопрос задан
  • 993 просмотра
Пригласить эксперта
Ответы на вопрос 1
@f0rmat1k
1. Проблема с горизонтальным скроллингом fixed-блока решается так:
$(window).on('scroll', function(){
   $('.fixed-block').css('margin-left', - $(window).scrollLeft());
});

2. На мобильных устройствах событие скролл не срабатывает, пока не прекратится текущая анимация. Сделано это скорее всего из соображений оптимизации и экономии батарейки.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы