jQuery的滚动功能导致严重的性能问题

时间:2016-08-31 13:12:36

标签: javascript jquery css angularjs

 if($window.innerWidth > 1600) {

 $(window).scroll(function() {       
    window.requestAnimationFrame(scrollHandler);                                     
 });
}

var fixedElement = $('.fixedElement');
var divide = $('.divide');
var ghost = $(".ghost");
 var isPositionFixed = (fixedElement.css('position') == 'fixed');
var sponsor = $('.sponsor');
var ghost1 = $('.ghost1');

function scrollHandler() {

                  if ($(this).scrollTop() >=64  && !isPositionFixed){

                      fixedElement.css({'position': 'fixed', 'top': '0', 'z-index': '200' });   
                      divide.css({'position': 'static', 'top': '0' });
                      ghost.removeClass("hidden");

                  } else if($(this).scrollTop()< 64)
                  {

                    fixedElement.css({'position': 'static', 'top': '0'});
                      divide.css({'position': 'static', 'top': '0' });
                      ghost.addClass("hidden");

                  } 

                   if ($(this).scrollTop() >= 850 )
                         {
                        $('.sponsor').css({'position': 'fixed', 'z-index': '100', 'top': '-200', 'width': '22.8%', 'float': 'right'}); 
                      ghost1.removeClass("hidden1");


                  } else if ($(this).scrollTop() < 850)  {

                        $('.sponsor').css({'position': 'static', 'z-index': '0', 'top': '0'}); 
                         ghost1.addClass("hidden1");                         
                  }
} 

这是我在角度控制器中的javascript代码。我试图在窗口滚动64像素后修复标题的一半,并在窗口滚动小于64时获取整个标题,同样我在标题滚动后在网页容器的右侧执行此操作到850并且低于850。

但这导致了我非常大量的滚动问题。我无法正确滚动我知道其背后的原因,但我无法提高性能。

有人请帮忙。还有其他办法吗?

0 个答案:

没有答案