• ベストアンサー

JavaScriptでwindowのスクロール

windows.scroll(0,y); でyを変化させてウィンドウをスクロールさせたいのですがしません 何が悪いのでしょうか? 他のコマンドがあれば教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • godakaz
  • ベストアンサー率72% (16/22)
回答No.5

元のソースのままをアップしていたとしたら、酷いね、元ソース。 修正したサンプルをアップするので、どこが違うのか見比べてね。 <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Web Object No.0 -Scroll- </title> <script language="JavaScript"> <!-- var y=0;var yMax=200;var timerID; function stop_win(){clearTimeout(timerID);} function scroll_win() { if(!new_win||new_win.closed){stop_win();} else{ new_win.scroll(0,y);timerID=setTimeout("scroll_win()",100); if(y>yMax) y=0;else y++;new_win.status="y-position="+y; } } //--> </script> </head> <body bgcolor="#ffffff"> <h1 style="margin-bottom:1000;">scroll</h1> <script language="JavaScript"> <!-- window.scroll(0,500); var new_win= window.open('','scroll_win','width=300,height=200,scrollbars=1,status=1'); new_win.document.open(); new_win.document.write("<h1 style='margin-bottom:1000;'>Scroll Scroll!!</h1>"); new_win.document.write("<p>end</p>"); new_win.document.close();scroll_win(); //--> </script> <p>end</p> </body> </html>

nubou
質問者

お礼

動かなかった原因がわかりました 行数が少なくてするロースする必要がなかったのです 行数を増やしただけでするロールし出しました 示していただいたものするロースしてます <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Web Object No.0 -Scroll- </title> <script language="JavaScript" type="text/javascript"> var y=0;var yMax=200;var timerID; function scroll_win() { new_win.scrollTo(0,y);timerID=setTimeout("scroll_win()",100); if(y>yMax) y=0;else y++; } function stop_win(){clearTimeout(timerID);} </script> </head> <body bgcolor="#ffffff"> <script language="JavaScript" type="text/javascript"> var new_win=window.open("","scroll_win","fullscreen=yes"); new_win.document.open();new_win.onunload=stop_win; new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.close();scroll_win(); </script> </body> </html>

その他の回答 (4)

  • godakaz
  • ベストアンサー率72% (16/22)
回答No.4

失礼しました。 scroll(x,y)というメソッドも、MSDNに記載されていますね。 ただ、scrollToを使うように推奨されているようです。 「scrollメソッドよりもscrollToを使用した方が良い。このscrollメソッドは下位互換性を保つために用意されている。 」(MSDNの解説より抜粋)

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpisdk/dhtml/references/methods/scrol
  • wo-007
  • ベストアンサー率68% (15/22)
回答No.3

ウィンドウをスクロールさせるさせるメソッドは以下の3つがあります。 (1) scroll(x, y) (2) scrollTo(x, y) (3) scrollBy(x, y) (1)は古い仕様で、過去の互換性のために残されているらしいので使わないほうが良いでしょう。 (2)はx,yに画面上の絶対的な位置を指定します。 (3)はx,yに現在の位置からの相対距離を指定します。 5秒ごとに移動するメソッドを載せますので参考にして下さい。 function idou(){  scrollBy(0,2);  setTimeout("idou()",5000); }

nubou
質問者

お礼

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body bgcolor="#ffffff"> <script language="JavaScript" type="text/javascript"> var x=new Date("12/20/2002");document.write(x.toLocaleString()); function idou(){scrollBy(0,2);setTimeout("idou()",5000);} idou(); </script> </body> </html>

nubou
質問者

補足

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Web Object No.0 -Scroll- </title> <script language="JavaScript" type="text/javascript"> var y=0;var yMax=200;var timerID; function scroll_win() { new_win.scrollTo(0,y);timerID=setTimeout("scroll_win()",100); if(y>yMax) y=0;else y++;new_win.status="y-position="+y; } function stop_win(){clearTimeout(timerID);} </script> </head> <body bgcolor="#ffffff"> <h1>scroll</h1> <script language="JavaScript" type="text/javascript"> window.scroll(0,500); var new_win= window.open("","scroll_win","width=300,height=200,scrollbars=1,status=1"); new_win.document.open();new_win.onunload=stop_win; new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.close();scroll_win(); </script> </body> </html> でもだめでした

  • godakaz
  • ベストアンサー率72% (16/22)
回答No.2

追加: 移動量を指定するときは、scrollBy(dx,dy) 位置を指定するときは、scrollTo(x,y) scroll(x,y)は間違いでは?

nubou
質問者

補足

window.scroll(0,y) 之間違いです 犬でも分かるJavaScriptの際とででていたのですが・・・

  • godakaz
  • ベストアンサー率72% (16/22)
回答No.1

sが余計です。(windows -> window) window.scroll(x,y);

nubou
質問者

補足

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Web Object No.0 -Scroll- </title> <script language="JavaScript" type="text/javascript"> var y=0;var yMax=200;var timerID; function scroll_win() { new_win.scroll(0,y);timerID=setTimeout("scroll_win()",100); if(y>yMax) y=0;else y++;new_win.status="y-position="+y; } function stop_win(){clearTimeout(timerID);} </script> </head> <body bgcolor="#ffffff"> <h1>scroll</h1> <script language="JavaScript" type="text/javascript"> window.scroll(0,500); var new_win= window.open("","scroll_win","width=300,height=200,scrollbars=1,status=1"); new_win.document.open();new_win.onunload=stop_win; new_win.document.write("<h1>Scroll Scroll!!</h1>"); new_win.document.close();scroll_win(); </script> </body> </html> でだめなのです

関連するQ&A