
別フレームにスムーススクロールを使用したい。
Javascript初心者です。
自分自身でも色々調べたのですが、どうしても分からないことがあり、お力を貸して頂ければと思います。
http://user1.matsumoto.ne.jp/~goma/js/ps2.html
こちらのサイト様のようにスムーススクロールを使った移動を使いたいと考えております。
上記サイト様で使われているスクリプト等は理解出来ております。
今回、この応用として、
別フレームでスムーススクロールを使用するということをしたいと考えております。
(上記サイト様は、同じページ内での移動ですが、今回はボタン(リンク部分)と移動するページが
それぞれ別フレームになっているものを考えております。)
このようなやり方を紹介しているサイト様、もしくは書籍などご存知でしたら教えて下さい。
もしくは、上記サイト様のスクリプトをどのように応用すれば良いかなど教えて下さい。
どうぞ宜しくお願い致します。

A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
質問の画像を良く見ると、別に<iframe>でも<frameset>でも無さげだ。
そもそも、フレーム要素とは誰も言ってない。早とちりか!
単なる<div>ボックスのスクロールでよかったのかしらん?
となるとこのライブラリーはアンカーめがけてスクロールするだけだから
使えないよ。別の仕組みを作るか、探すかしないと...
No.3
- 回答日時:
幸い単純なスクローラーの仕組みだったみたいで、楽な方法で出来ますね。
<iframe id="iframe1" name="iframe1" src="target.html"></iframe>
があったとして、iframeに表示する「target.html」の<head>要素にでも
<script type="text/javascript" src="/ps2.js"></script>
を加えてロードさせておく。
親からのリンクの<a>要素は、ちょっと長いけど
<a href="#foo" onclick="return document.getElementById('iframe1').contentWindow.ps2.scroller(this);">
iframe内の#fooへスクロール</a>
で、出来ました。
No.2
- 回答日時:
<iframe id="iframe1" src="/hoge.html" ></iframe>
という<iframe>要素があったとして、
そのiframeのWindowオブジェクトは、
var iframe = document.getElementById("hoge");として
iframe.contentWindow で取得可能
よってiframe内のスクロールなら、
iframe.contentWindow.scrollTo(X,Y);
※X,Yはiframe内の移動量
iframe内の要素の取得は、iframe内のdocumenntオブジェクトは、
iframe.contentDocumentで取得可能
※古いIEだと、iframe.contentWindow.documentでよい
よって、
var content=iframe.contentDocument||iframe.contentWindow.document;
とすれば、
content.getElementById("xxx")
の様にiframe内の任意の要素が取得できる。
しかし、取得した要素の高さ・幅や位置(X,Y)の取得は、ブラウザーに
よって方言があり、振り分け方法が煩雑で面倒になる。
さらにバブリングするイベントのIEでの取得は、さらに面倒
iframe.contentWindow.document.attachEvent('onclick', function(){
alert(iframe.contentWindow.event.clientX);
});
よって、無理にiframe内のDOMを操作するよりは、iframe内のHTMLにも
親と同じjavascriptライブラリーをロードしておいて、親のjavascript
から、子供のjavascriptを操作するようにした方が楽じゃないかな。
No.1
- 回答日時:
ちゃんと見ていませんが…
フレームが異なるということはドキュメントが異なることになりますので、ドキュメントオブジェクトを指定できるように変更してあげれば動作するようになるのでは?
ただし、フレームの内容が別ドメインの場合はスクリプトのアクセス制限があるので、動作できないと思われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
子フレームの自動リロードは可...
-
外部ページの文字の置換について
-
<a href="#" …>の意味を教えて...
-
SCRIPT5007: 未定義または NULL...
-
cssにjavascriptを入れる?呼び...
-
bodyにidをつける理由は何ですか?
-
onLoadをbodyタグ以外で使用する
-
ウインドウの後ろに隠れている...
-
htaでVBSのソースを書いたらエ...
-
ウィンドウのフォーカスについて
-
idHOGEで取得したinnerText(数...
-
入力したテキストボックスのデ...
-
HTMLでのブラウザタブの制御
-
外部.jsの内容を一部置き換えて...
-
SQLのWHEREで全てを質問する方法
-
別ファイルのfunctionの読み込み方
-
window.openでフルスクリーン表...
-
キーを押している間の時間を計...
-
Copyrightの年号を自動的に変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
URLを引数とし、フレーム間で渡...
-
ロード時に別フレームの関数を...
-
親ウインドウの判別
-
フレーム間でジャバスクリプト...
-
HTMLでサブフレームから親のス...
-
別フレームの中にあるインライ...
-
子フレームの自動リロードは可...
-
submitボタンで他のフレームを...
-
インラインフレームでわからな...
-
フレームをこえるポップアップ
-
javaとフレーム
-
チェックボックスのチェックを...
-
javascriptでラジオボタンをチ...
-
検索フォームでの結果を別窓に...
-
フレームページで、最大化など...
-
HTMLフォームボタンによるター...
-
フレームが入れ子状態です。フ...
-
フレーム分割について
-
オンマウスで画像を表示〈フレ...
おすすめ情報