2016-08-30 8 views
0

私は無限大のスクロールを持ち、上部のスクロールがdivの特定の部分に達するたびに、新しいコンテンツをオーバーロードするまでロードします。しかし、ロードするたびに非常に遅くなります。それは私が.eachの機能の中にいくつかのコードを入れたときに起こり、スクロールが本当に遅くなって迷惑になるということが起こります。scrollTopを使用したJquery scrollスクロール位置が実際には遅い

function scrollAnimationFrame(ticking, windowHeight, tabSelected){ 
    if (!ticking) { 
     window.requestAnimationFrame(function() { 
      scrollEvent(tabSelected, windowHeight); 
      ticking = false; 
     }); 
    } 
    ticking = true; 
} 

function scrollEvent(tabSelected, windowHeight) { 
    var activeTab = document.getElementsByName(tabSelected)[0] 
    var divResults = activeTab.getElementsByClassName('div-content'); 
    var scrollY = window.scrollY || document.documentElement.scrollTop; 
    var pos = $(window).scrollTop(); 

    var scrollY = window.scrollY || document.documentElement.scrollTop; 

    $(divResults).each(function(i, el){ 
     var posOutsideDiv = $(el).offset().top + $(el).outerHeight(); 
     var inside = (scrollY >= $(el).offset().top && scrollY <= posOutsideDiv - 150) 

     if(inside){ 
      toggleThead(el, "visible"); 
     } else if(scrollY >= $(el).offset().top && scrollY <= posOutsideDiv + $(document).height()){ 
      toggleThead(el, "hidden"); 
     } else { 
      toggleThead(el, "visible"); 
     } 
    }); 
} 
+0

何が遅くなるのですか?ページ全体をスクロールするか、新しい要素を追加するときだけ遅くなりますか? – martin

+0

ブラウザウィンドウの上部にスクロールしようとしていますか?または要素の先頭に? .each()内であなたの数学をやっているからかもしれません。多くの行のデータがある場合は、投稿された各要素を計算し、ループして、それぞれの要素の上にスクロールして、目的の要素に当たるまでします。親要素の一番上までスクロールできますか?達成したいことの例がありますか? – ClosDesign

+0

@Martin新しい要素を追加するたびにページが遅くなる – fsi

答えて

0

さて、新しいコンテンツを追加するたびにスクロールが遅くなるというJavaScriptだと思っていました。だから私はAngularJsを調べて、私は指令テンプレートを再利用していました。したがって、基本的に各テンプレートとvoiláに対して2つのディレクティブを作成します(これは嫌いです)。遅いスクロールはもうありません。

関連する問題