Я моргаю, изменив с js элемент в положение fixed

оказывается, что у меня есть меню, которое я хочу, как прибывает scroll, который пребывает установленным на экране.

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

$(window).scroll(function(){

    var sticky2   = $(".conte-botk")[0].getBoundingClientRect().top + $(window)['scrollTop']();  


    var sticky = $(".conte-botk");

    var scrolle = $(window).scrollTop();



  if (scrolle > sticky2) {

        sticky.addClass('fixed');

  }else{

        sticky.removeClass('fixed');

    } 


});

Я попытался доставать снаружи переменную sticky2 из функции scroll и проблема решается, но прекращает быть точным, изменив размер окна браузера. Кто-то мог бы давать мне решение?

1
задан 12.01.2017, 20:00
0 ответов

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

    var sticky2   = $(".conte-botk")[0].getBoundingClientRect().top + $(window)['scrollTop']();  

  $(window).scroll(function(){

        var sticky = $(".conte-botk");

        var scrolle = $(window).scrollTop();



      if (scrolle > sticky2) {

            sticky.addClass('fixed');

         sticky2=parseIn(sticky2);


      }else{

            sticky.removeClass('fixed');
           sticky2   = $(".conte-botk")[0].getBoundingClientRect().top + $(window)['scrollTop']();  


        } 


    });

Прекратил моргать и еще меняя ширину окна браузера продолжает быть точным сайт, где div меняется в положение fixed.

1
ответ дан 03.12.2019, 17:42