2016-08-30 145 views
0

我有無限滾動,每次頂部滾動達到div的某個部分,它會加載一個新的內容,直到它結束。但每次加載時,速度都很慢。當我在.each函數中放入一些代碼時,會發生這種情況,並且我的滾動變得非常慢,這很煩人。我不知道如何解決它jQuery滾動scrollTop位置滾動非常慢

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á創建兩個指令(討厭這樣做)。沒有更多的慢滾動。