Встряска контента при скролле

232
05 мая 2018, 14:53

Происходит встряска контента из-за функции скролла, в чем может быть дело? Кто не против, может протестировать сам скролл.

$(window).scroll(function (event) {
   var st = $(this).scrollTop();
   // вниз
   if (st > scrollPos && window_width >= 1024) {
       // если мы в первой секции
       if (st < main_height && !flag) {
           // движемся ко второй секции
           flag = 1;
           $page.animate({
               scrollTop: ($('section.about').offset().top) + 10
           }, 3000, function () {
               if (window_width >= 1200) {
                   $('section.about .video').css({
                       'width': '893px'
                       , 'height': '506px'
                   }).addClass('opened');
                   //player.play();
                   // запускаем видео, как доскролили    
               }
               flag = 0;
               console.log('.');
           });
           // анимация гор, облаков и т д
           $('.clouds-front').css('top', '-295px');
           $('.clouds-back').css('top', '-273px');
           $('.clouds-front2').css('top', '95px');
           $('.clouds-back2').css('top', '73px');
           $('.mountain').css('top', '400px');
           $('.logo').css('top', '500px');
       }
       // вверх 
       // если мы во второй секции, движемся к началу страницы
   }
   else if ((st <= main_height) && !flag && window_width >= 1024) {
       flag = 1;
       $page.animate({
           scrollTop: 0
       }, duration, function () {
           flag = 0;
       });
       // анимация гор, облаков и тд
       $('.clouds-front').css('top', '195px');
       $('.clouds-back').css('top', '273px');
       $('.clouds-front2').css('top', '295px');
       $('.clouds-back2').css('top', '373px');
       $('.mountain').css('top', '324px');
       $('.logo').css('top', '135px');
   }
   scrollPos = st;
});
Answer 1

Дело в анимации перехода-движения ко второй секции. Когда анимация прокрутки запущена события скролла окна заставляют трястись так контент. Необходимо запретить скролл во время этой анимации-перехода. Т.е. как только запустили анимацию скролл окна пользователем должен быть недоступен пока анимация перехода не завершится.

Как временно отключить скролл вы можете узнать в ответе на вопрос https://stackoverflow.com/questions/4770025/how-to-disable-scrolling-temporarily

Answer 2

Тут поробовал,не скролом внутри функции скрол,а отрицательный маржин задал вернему ьлоку и получается видемость скрола вниз,весть контент уходит верх,а пользователь видет следующий блок,частично проблему решил

READ ALSO
чат с момощью websocket

чат с момощью websocket

Помогите разобраться с кашей в голове от изобилия всякой инфы! Я запутался, передо мной задача сделать чат как в vkНа сколько я понял для этого...

217
Добавление и удаление методов

Добавление и удаление методов

Всем привет! Вопрос по аопЕсть разные инструменты для изменения и добавления cil

267
c# WMI тип объектов Reference

c# WMI тип объектов Reference

При обращении к удаленному серверу через WMI получаю результат следующего вида:

310