2009-04-06 8 views
1

ナビゲーションを有効にするために入力要素のテーブルで使用する一連のJavascript関数があります。現在フォーカスされている要素を追跡し、1つの行の終わりから次の行の先頭にオーバーフローするようなもの。私は固定列として1つの列だけで、他のテーブルのスクロールバーを持つ1つのテーブルを作成することによって、固定された最初の列でスクロールバーをサポートしています。Javascriptでスクロール位置を強制的にスクロールする

しかし、私は最近、スクロールバーのデフォルトの動作が少し不足していることに気づいています。最後の列に移動すると、Firefoxはその列をスクロールバーで部分的に覆い隠して表示します。同様に、一度スクロールすると、最後の列の他の部分を見ることができます。次の行に移動し、Navコードが最初の列(固定表)のセルにフォーカスを合わせると、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用のインハウスプロジェクトとして機能しませんか?

私は何が間違っているか把握しようとしています。 scrollLeftは正しく動作しないことがわかっていますか、または私が戻って、スクロールバーの定義やそれらの行に沿った何かに何かをねじ込んでしまったかどうかを確認する必要がありますか?

+0

haha​​ ...私は "肉食き"としてIDを読んだ – Jason

答えて

7

含まれるdivは、オーバーフローのある要素です。 divではなく、テーブルのscrollLeftを設定する必要があります。

関連する問題