我想用滾動條創建一個大的HTML表格(大約5000行),所以我想過在<div>
裏面插入那張表格,然後我可以格式化爲I欣慰。谷歌瀏覽器中大(ish)html表格的滾動行爲很慢
它運作良好,在Firefox 47和IE 11,但在Chrome瀏覽器上滾動低迷的行爲59.
<!DOCTYPE html>
<html>
<head>
<title>Test page</title>
</head>
<body>
<div style="width: 400px; height: 300px; overflow: scroll;" id="test"></div>
<script>
let table = '<table style="table-layout: fixed; width: 3000px">';
table += '<thead>';
table += '<tr>';
for(let i=0; i < 30; i++) {
table += '<th style="width: 100px">#' + i +'</th>';
}
table += '</tr>';
table += '</thead>';
table += '<tbody>';
for(let i=0; i < 5000; i++) {
table += '<tr>';
for(let j=0; j < 30; j++) {
table += '<td>r: '+ i +' || c: '+ j +'</td>';
}
table += '</tr>';
}
table += '</tbody>';
table += '</table>';
document.getElementById('test').innerHTML = table;
</script>
</body>
</html>
但是如果我只是添加表格文檔正文中,在我測試過的3個瀏覽器中,滾動行爲是平滑的(但我只能在我的本地開發服務器中運行代碼時觀察到這種行爲;如果我將該表追加到JSFiddle中的文檔主體中,則Chrome的呆滯行爲會再次出現) 。
我的問題是什麼可能會導致Chrome瀏覽器緩慢的行爲,我能做些什麼來獲得更流暢的滾動表?
*編輯:我已經從代碼塊中的<td>
中刪除了style="position: relative"
,因爲這就是我在小提琴中所做的。我正在嘗試這種風格,因爲我注意到,當表格元素相對定位時,IE瀏覽器往往會在滾動上變得呆滯。我的最終目標是創建一個帶有固定/凍結標題的大型html表格,該標題具有包含大量行的可滾動主體。
有使用Chrome(64)相同的問題,而沒有與FF和邊緣沒有問題。然而,在你的例子中加入「overflow:scroll」到外部div - 解決了這個問題。 無論如何:看看slickgrid,也許正是你在找什麼。 –