Почему прокрутка окна с помощью jquery скачет в Safari?

#jquery #google-chrome #safari #scroll

#jquery #google-chrome #safari #прокрутка

Вопрос:

На моем сайте у меня есть анимация в верхней части страницы, которая анимируется на основе прокрутки пользователя. В / после определенного момента анимация заканчивается, и прокрутка пользователей продолжается. Я добиваюсь этого, получая scrollTop позицию при прокрутке и регулируя top положение другого раздела страницы:

 $(window).scroll(function(){
     var windscroll = $(window).scrollTop(); 
     sections.each(function(){
          $(this).addClass('no-scroll');
          $(this).css({
               'top': windscroll
          });
          $('#arrow .wrap').addClass('no-scroll');
     });
});
  

Я попытался выполнить настройку верхней части моего контейнера страницы, предполагая, что each это было причиной скачка, но я получил тот же результат. Я также попробовал плагин «дросселирования / деблокирования» под названием jQuery throttle / debounce, но это не помогло. Игра с опциями либо ухудшила ситуацию, либо не внесла никаких изменений.

Я действительно замечаю, что в Chrome есть некоторая нервозность (другой браузер Webkit … может быть связанной с этим проблемой?), Но это немного заметно в Chrome. Я могу оправдать скачки в Chrome, но Safari настолько плох, что я хотел бы найти решение.

Ответ №1:

Я сталкиваюсь с той же проблемой, я создал для нее jsFiddle:

Очень простая прокрутка

 $(document).ready(function(){
    $('#main').scroll(function(){
        $('#two').css('top', $('#main').scrollTop());
    });
});
  

Я понимаю, если это происходит со многими элементами или сложными вычислениями, но в этом примере это всего лишь 3 раздела, а прокрутка в Safari ужасна.