- ベストアンサー
左右のフレームを同時にスクロールさせる。
左側のフレーム(left)にスクロールバーをつけることなく、右側のフレーム(right)のスクロールバーだけで左のフレームも同時にスクロールさせる方法を教えて下さい。 というのも運営しているホームページのお客様から左のメニューが全部見えないので改善して欲しいとご指摘を頂いたためです。 (ホームページの作成及びメンテナンスの都合上、左右にフレームを分割したホームページですが、無理です。もしくはテーブルでホームページを作り直せばといった回答はご遠慮下さい。少しでもご参考になればということでURL:www.e-mail.acをのせておきます。)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
補足読みました。 右側のページの縦の表示幅と、左側のページの縦の表示幅に差があるということはありませんか? 右側のページの縦の表示幅が左側のページの縦の表示幅を大きく超えている場合、あるいは、左側のページの表示の縦幅にスクロールをしなければ表示できないオーバーフロー部分がない場合、左側のページは通常のページと同様にページ内容の最下端に行き当たっている時点でスクロールダウンができなくなるので、一見スクリプトが機能していないように見えることもあるかと思います。 このケースが疑わしい場合は、左側のページにダミーの内容(多数の改行など)を入れて縦の表示幅を稼ぎ、その上でスクリプトの動作を確認してみてください。 それで機能しているようでしたら、スクリプトの問題はないと思います。 おそらくこの線なのではないかと思いますが… もしそれが原因でないとしたら、何が原因なのかを推定する情報が得られないと、対処方法を提案するのも難しいと思います。 もしエラーメッセージが表示されているようでしたら、そのエラーメッセージの内容も合わせて補足してみて下さい。 あるいは、可能でしたら不具合の状況や現象をもう少し詳細に補足していただけると、解決も可能かと思います。 たびたび失礼しました。
その他の回答 (2)
蛇足気味ですが… 右側のフレームのHTMLファイルの中に、以下のスクリプトを入れてみるのはいかがでしょうか。 スクリプト的にはあまりスマートではないかも知れませんが… <script type="text/javascript"> <!-- function dblscroll(){ if (navigator.appName.charAt(0)=="M"){ parent.left.window.scrollTo(0,document.body.scrollTop); } else if (navigator.appName.charAt(0)=="N"){ parent.left.window.scrollTo(0,window.pageYOffset); } } if (navigator.appName.charAt(0)=="M"){ document.onmousemove=dblscroll;} else if (navigator.appName.charAt(0)=="N") { window.captureEvents(Event.mousemove); onmousemove=dblscroll; } // --> </script> こちらでは、IE6とNetscape6で動くことを確認しました。 参考になれば…
- Sequel
- ベストアンサー率41% (23/56)
過去の質問の紹介で申し訳ないですが、取り急ぎ 参考になればと思いまして、貼り付けていきます(汗) http://www.okweb.ne.jp/kotaeru.php3?q=561567
補足
Ano.#2同様に右側(name=right)に貼り付けてもうまく動作しません。もし、良いアドバイスがありましたら、ぜひ御教え下さい。よろしくお願い致します。
補足
スクリプトまで教えて頂き、ありがとうございます。 ただ、私のブラウザーはIE6なのですが、以下のような条件でうまく動きません。教えていただいた上にさらにお聞きするのは大変恐縮なのですが、アドバイスを頂ければ幸いです。 ・プログラムは<head>と</head>の間に貼りました。 ・フレームを規定する部分のHTML(抜粋)は以下です。 <frame src="menue.htm" name="left" marginwidth="0" marginheight="0" scrolling="no"> <frame src="top_page.htm" name="right" marginwidth="0" marginheight="0" scrolling="auto">