テーブルにExcelのようなスクロール機構を付加する(その2)
普通に書いたテーブルに対して、Excelのようにヘッダ部以外をスクロール可能に変更するJavascript。
→その1
→ サンプル
幅の固定化をしていない表をサポートしようと試みるが失敗。
ネタ元 id:zwfk:20041110
for(var i=0;i<oTBL.tHead.rows[0].cells.length;i++) { oTBL.tHead.rows[0].cells[i].style.width = oTBL.tHead.rows[0].cells[i].offsetWidth+'px'; oTBL.tBodies[0].rows[0].cells[i].style.width = oTBL.tHead.rows[0].cells[i].offsetWidth+'px'; } oTBL.style.width = oTBL.offsetWidth+'px';
上記コードでレンダリング済みの表から各セルの幅をoffsetWidthで取得してstyle.widthで指定しなおそうとしたが、セルの余白(cellpaddingやtd,thに対するpadding)があると、その分大きくなってしまう。
cellpaddingだけならその分、引いてwidthに設定すればいいけど、スタイルシートでセルにpaddingを設定されていると困ってしまう。
# IEだけならcurrentStyleでわかるんだけど他のブラウザでは使えないし。
もうちょっと使えそうなプロパティがないか調べてみよう。