- ベストアンサー
フレームページを一定量だけ横移動
- CGI形式の掲示板でリンクをクリックすると一定量(たとえば400ピクセル)だけ左右に移動するスクリプトを探しています。
- リンクをクリックすると一定量の横移動をするスクリプトについて、著作権の問題や改造の方法について教えてください。
- 横移動するスクリプトの著作権や改造についての疑問を質問させてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Wizard_Zeroと申します。 単純に移動するだけならこんな感じでOK。 [ index.html ] <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function moveframe(nMove) { movingframe.scroll(nMove,0); } //--></SCRIPT> </HEAD> <BODY> <A HREF="#" OnClick="moveframe(0);">ブロックA</A> <A HREF="#" OnClick="moveframe(400);">ブロックB</A> <A HREF="#" OnClick="moveframe(800);">ブロックC</A> <A HREF="#" OnClick="moveframe(1200);">ブロックD</A> <DIV><IFRAME ID="movingframe" WIDTH="400" HEIGHT="320" SRC="frame.html" SCROLLING="NO"></IFRAME></DIV> </BODY> </HTML> [frame.html] <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY STYLE="margin : 0px ; padding : 0px"> <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="1600"> <TR> <TD STYLE="width : 400px ; background : #afafff">ブロックA</TD> <TD STYLE="width : 400px ; background : #ffafaf">ブロックB</TD> <TD STYLE="width : 400px ; background : #afffaf">ブロックC</TD> <TD STYLE="width : 400px ; background : #afafaf">ブロックD</TD> </TR> </TABLE> </BODY> </HTML> moveframe 関数を呼び出す時に横スクロールバーの位置を指定すればその場所へ移動します。 # IE、Operaで動作確認しました。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
#1 Wizard_Zeroです。 <SCRIPT LANGUAGE="JavaScript"><!-- function moveScroll(nMove) { document.parentWindow.scroll(nMove,0); } //--></SCRIPT> moveScrollを同じページ内で呼び出せばスクロールが移動します。 # ついでなので詳しい解説 まず、スクロールバーを動かすにはscrollという関数を呼び出す必要があります。この関数を持っているのは「Window」というオブジェクトで、IFRAMEの場合はIDに相当します。同じページ内で呼び出すには、まずdocumentからparentWindowというプロパティでWindowオブジェクトを引っ張り出してscroll関数を呼び出します。フレームを使ったページでも要領は同じです。オブジェクトの階層構造とそれぞれのオブジェクトが持つプロパティや関数を覚えると(調べられるようになると)スクリプトでのウィンドウ操作も上達するでしょう。
お礼
完璧に動きました! 素晴らしいです、どうもありがとうございました。 ちなみに、ちょっとプログラム関連で気になったのでお尋ねしたいのですが、 もしこのページの横移動を親フレームからではなく、そのページ自身で行うとしたら、スクリプトはどの様に変わってくるのでしょうか?