ホームページを見るときにマウスのホイールでページの下へ移動中,ページ中のフレームにカーソルがさしかかると,そのフレーム内をスクロールしてしまう経験が有ると思います。


ホームページ作成の時に,どちらをスクロールするか任意に切り替えるボタンを付けたいと思っています。

例としてはフレームページの横にそのボタンを付け,そのボタンを押すとカーソルがどこにあってもそちらのフレームのみをスクロールし,メインページは一切スクロールされない。
もう一度ボタンを押すと解除されて,メインページのみスクロースし,フレームは一切スクロールしないという設定を望んでいます。

このような方法を使用しているホームページがありましたら教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/09/26 19:00:51
  • 終了:--

回答(1件)

id:peugeot No.1

peugeot回答回数131ベストアンサー獲得回数52005/09/26 19:52:41

ポイント40pt

http://jsm.suepon.com/script/jsm37.html

シンクロするスクロールバー - JavaScript Market

メインフレーム/インラインフレームのどちらをスクロールさせるかはマウスの位置により決まります。JavaScript等ではマウスの位置を強制的に動かすことは出来ません。

(勝手に動かせたらセキュリティの問題ですね)

ボタンクリックよってインライン内部を自動的にスクロールさせるといった方法ならサンプルがよくあります。上記URLは複数のIFRAMEのスクロールを同期するサンプルです。

BodyタグにonScrollにて関数を呼び出し、その中でBodyタグはスクロールさせずにIFRAMEだけをスクロールさせてる方法もありますが、ページがガクガク動いてミットもなくなりました。

スタイルシートを使いまくれば同等の機能を作ることも可能ですが、かなりやっかいだと思います。


http://www.hatena.ne.jp/1127728851#

人力検索はてな - ホームページを見るときにマウスのホイールでページの下へ移動中,ページ中のフレームにカーソルがさしかかると,そのフレーム内をスクロールしてしまう経験が有ると思いま..

求めている回答とは違うかもしれませんが、

スクロールバーの表示・非表示を切り替えるだけでもだいぶ効果があると思います。

例えばinlineという名前(name)のIFRAMEがあり、初期状態でスクロールを表示させなければ(scrolling=”NO”)、カーソルをあわせていてもスクロールはメイン側だけになります。ボタンクリックにてメイン側のスクロールバーを消して、IFRAMEのスクロールバーを表示させれば、カーソルをあわせている間だけですが、IFRAME側をスクロールし、メイン側はスクロールしなくなります。

以下、サンプルのJavaScriptです。

<!--

var flg=true;

function setFocus() {

  if ( flg ) {

    document.body.scroll=”no”;

    inline.document.body.scroll=”yes”;

    flg = false;

  }

  else {

    document.body.scroll=”yes”;

    inline.document.body.scroll=”no”;

    flg = true;

  }

}

//-->


/// 本文中 ///

<INPUT type=button value=”フォーカスセット” onClick=”setFocus();”>


<IFRAME SRC=”inline.html” NAME=”inline” WIDTH=”440” HEIGHT=”120” scrolling=”NO”>


※IEでしか動作確認してません。FireFox/Netscape対応にはもう少し工夫が必要。

id:Rousa

丁寧にありがとうございます!

質問した内容の設定は出来ないということは理解できました。

初心のため書いていただいてることを十分に理解できてはいませんが,色々調べて理解できるよう頑張ります。

ありがとうございました。

2005/09/27 21:39:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません