ナビゲーションを有効にするために入力要素のテーブルで使用する Javascript 関数のセットがあります。現在フォーカスされている要素を追跡したり、ある行の終わりから次の行の始まりまでオーバーフローしたりするようなものです。固定列として幅が 1 列だけのテーブルを 1 つ作成し、もう一方のテーブルにスクロールバーを設定することで、最初の列を固定してスクロールバーをサポートしています。
ただし、スクロールバーのデフォルトの動作が少し不十分であることに最近気づきました。最後の列に移動すると、Firefox はその列が表示されるまでスクロールするのではなく、スクロールバーによって部分的に隠されます。同様に、最後の列の他の部分が見えるようにスクロールすると、次の行に移動し、ナビゲーション コードが最初の列 (固定されたテーブル) のセルにフォーカスを設定しても、Firefox は変化しません。最初の列をすべて表示できるようにスクロールバー。
このため、javascript を使用してスクロールバーの位置を変更する方法を検討してきました。私のテーブルは垂直スクロールバーを使用せず、水平スクロールバーのみを使用しています。だから私はscrollLeftに出くわしました。
document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost
残念ながら、これはたまにしか機能しないようです。Firebug を有効にして、この行があるナビゲーション コードをトレースすると、たまに動作するように見えますが、ほとんどの場合、この行は実行されますが、テーブルの左スクロール プロパティは変更されておらず、変更を確認できません。視覚的にも。
また、scrollLeft を高い数値に設定して、ドキュメントに記載されているように最大値に設定しますが、これも機能しません (たまに例外を除いて)。
次のコードを使用して、テーブルにスクロールバーを設定します。
<div style="overflow:auto">
<table id="meastable" border="1">
Mozilla のドキュメントによると、これは IE で発生したもののようですが、現在は Firefox で動作します。これは実際には Firefox では機能しませんか?これが対象とする社内プロジェクトは Firefox のみです。
だから私は何が間違っているのかを理解しようとしています。scrollLeft は正しく動作しないことが知られていますか、それとも、スクロールバーの定義やそれらの行に沿って何かを台無しにしたかどうかを確認する必要がありますか?