我想用滚动条创建一个大的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,也许正是你在找什么。 –