じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

ニセくさい(笑) サイトです。

スポンサードリンク

運営サイト

  • C# と VB.NET の入門サイト

Blog Item

フィードメーター - じゃんぬねっと日誌

書庫

指定の DIV だけスクロールさせたい

本家サイトで、TreeMenu を JavaScript で実装しています。
開いたページと同期して自動で Expand されるようになっております。

ただ、現在の位置を示す Node が見える位置までスクロールできません。
scrollIntoView を使えばスクロールは可能ですが、
メイン ウィンドウまでスクロールされてしまいます。(;_ _)

DIV で囲っている部分のスクロール バーだけ動かしたいのです。
擬似的に Form を作ってもダメでした... どうすればいいのかなぁ。

やっぱないかな... できる方法は。
教えてくれるすごくていい人いないですかね?

投稿日時 : 2006年1月8日 0:37

コメントを追加

# re: 指定の DIV だけスクロールさせたい 2006/01/08 1:27 じゃんぬ

スクロールさせた後に、scrollTo(0, 0) とやれば、
本体の Window は元の位置に戻るので目的は達成できますが、
やはり多少ちらつきますね...

# re: 指定の DIV だけスクロールさせたい 2006/01/08 10:58 じゃんぬ

だめだー、IE ですら、タイミング次第でスクロールがおかしくなる... orz
フレーム使っていれば楽勝なんだろうけど、フレームは使いたくないから... (^^;)

# re: 指定の DIV だけスクロールさせたい 2006/01/08 11:00

こういうこと?

<SCRIPT language="JavaScript">
<!--
function hoge(index)
{
menu.scrollTop = list.children(index).offsetTop;
}
//-->
</SCRIPT>
<DIV id="menu" style="float:left; width:200px; height: 100px; overflow: scroll; border: 1px solid black;">
<UL id="list">
<LI>ほげ1<LI>ほげ2<LI>ほげ3<LI>ほげ4<LI>ほげ5<LI>ほげ6<LI>ほげ7<LI>ほげ8<LI>ほげ9<LI>ほげ10
</UL>
</DIV>
<DIV style="width: 100%; height: 200%; border: 1px solid blue;">&nbsp;</DIV>
<INPUT type="text" id="txtIndex" value="9" size="2"><BUTTON onclick="hoge(parseInt(txtIndex.value));">スクロール</BUTTON><BR>

# re: 指定の DIV だけスクロールさせたい 2006/01/08 11:09

さっきのコード、Firefox1.5じゃ動かないっぽ
Operaなら大丈夫だったんだけどねー
あかん orz

# re: 指定の DIV だけスクロールさせたい 2006/01/08 12:21 じゃんぬ

offsetTop って event オブジェクトでないと Valid じゃないような...

# re: 指定の DIV だけスクロールさせたい 2006/01/08 12:24 じゃんぬ

あ、object.offsetTop の方ですね。

# re: 指定の DIV だけスクロールさせたい 2006/01/08 12:44 じゃんぬ

しょーぢさんありがとう!! (^o^*)
FireFox でも一応できましたよ。

ただ、位置がおかしいみたいですけど...

この辺りで確認してみると良いです。
ttp://jeanne.wankuma.com/tips/string/substring.html

# re: 指定の DIV だけスクロールさせたい 2006/01/09 0:56

おー、良かった良かった
なんでうちのFirefoxでビクともしなかったんだろ
・・・あー、HTMLの組み方かな

兎にも角にもお役に立てて良かったです

# re: 指定の DIV だけスクロールさせたい 2006/01/09 12:05 じゃんぬ

IE, FireFox, Opera で動けば文句なしですよ。
本当に助かりました。(*_ _)

あの後、もう少し改良を加えて、
スクロールしている瞬間が見えないようにしました。(^-^*)

ただ、parentNode.offsetTop の値が相違しちゃうのが判りません。
同じ親ノードを見ているハズなんですけど、IE が視覚テーマの影響を受けるからかなぁ。

タイトル  
名前  
URL
コメント