- ベストアンサー
JavaScriptでwindowのスクロール
windows.scroll(0,y); でyを変化させてウィンドウをスクロールさせたいのですがしません 何が悪いのでしょうか? 他のコマンドがあれば教えてください
- みんなの回答 (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>
その他の回答 (4)
- godakaz
- ベストアンサー率72% (16/22)
失礼しました。 scroll(x,y)というメソッドも、MSDNに記載されていますね。 ただ、scrollToを使うように推奨されているようです。 「scrollメソッドよりもscrollToを使用した方が良い。このscrollメソッドは下位互換性を保つために用意されている。 」(MSDNの解説より抜粋)
- wo-007
- ベストアンサー率68% (15/22)
ウィンドウをスクロールさせるさせるメソッドは以下の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); }
お礼
<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>
補足
<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)
追加: 移動量を指定するときは、scrollBy(dx,dy) 位置を指定するときは、scrollTo(x,y) scroll(x,y)は間違いでは?
補足
window.scroll(0,y) 之間違いです 犬でも分かるJavaScriptの際とででていたのですが・・・
- godakaz
- ベストアンサー率72% (16/22)
sが余計です。(windows -> window) window.scroll(x,y);
補足
<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> でだめなのです
お礼
動かなかった原因がわかりました 行数が少なくてするロースする必要がなかったのです 行数を増やしただけでするロールし出しました 示していただいたものするロースしてます <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>