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");
}
});
}
什麼變得緩慢?完全滾動頁面或只在追加新元素時很慢? – martin
你想滾動到瀏覽器窗口的頂部嗎?或者到一個元素的頂部?這可能是因爲你在.each()中做了你的數學運算。如果你有很多行數據,那麼它會計算已經發布的每個元素,循環,然後滾動到每個元素的頂部,直到它達到你想要的。你可以滾動到父元素的頂部嗎?你有沒有想要完成的例子? – ClosDesign
@Martin頁面在每次添加新元素時變得越來越慢 – fsi