我正在以編程方式更新表頭和第一列位置,這是基於用戶如何滾動以保持對齊方式。在大型表上提高iScroll性能
我遇到的問題是,只要我的數據集足夠大,滾動會越來越多/不太平滑。
相關的代碼是在小提琴的最底部:
iScroll.on('scroll', function(){
var pos = $('#scroller').position();
$('#pos').text('pos.left=' + pos.left + ' pos.top=' + pos.top);
// code to hold first row and first column
$('#scroller th:nth-child(1)').css({top: (-pos.top), left: (-pos.left), position:'relative'});
$('#scroller th:nth-child(n+1)').css({top: (-pos.top), position:'relative'});
// this seems to be the most expensive operation:
$('#scroller td:nth-child(1)').css({left: (-pos.left), position:'relative'});
});
我知道,這可以通過緩存等元素被寫了很多比較有效。例如,我曾嘗試保存的元素添加到數組和更新更多的「香草」的時尚自己的立場:
headerElements[i].style.left = left + 'px'; // etc...
不管我怎麼做快速回調,我仍然對結果不滿意。你有什麼建議嗎?
https://jsfiddle.net/0qv1kjac/16/
是否100%必須使用工具創建滾動條? – ihodonald
您可以創建一個包含html塊的數組。根據當前滾動位置加載數組的每個索引,假設pos爲前一個位置的正值。這個應該做的是加載大量的數據(比如說100行),並且在到達下一個「檢查點」之前不會加載數據。心連心! – Programmer