人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: Rousa
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:カーソル スクロース スクロール フレーム ホイール
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● peugeot
●40ポイント

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対応にはもう少し工夫が必要。

◎質問者からの返答

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ