スクロールバーを使用して大きなHTMLテーブル(約5000行)を作成しようとしています。そのテーブルを<div>
に挿入することを考えました。喜んだ。Google Chromeの大きな(ish)htmlテーブルのスクロール動作
これは、Firefox 47にし、IE 11で正常に機能しますが、私はちょうど文書本体にテーブルを追加する場合はクローム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テーブルを作成することです。
は、クロム(64)と同じ問題を有します。しかし、あなたの例のように、外側のdivに「オーバーフロー:スクロール」を追加することで、この問題が解決されました。とにかく:あなたが探しているのかもしれない、スリックグリッドを見てみましょう。 –