重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

数日前にここで質問して教えていただいたのですが…
その方法がいまいよくわかりません。
ページを読み込んでから数秒後に実行し、振動が止まってからまた数秒後に振動させたいのです…

<html>
<head>
<title>ウィンドウを揺らす</title>
<script Language="JavaScript"><!--
x = new Array( 10, 3,-6, 8,-10,-7,5,-3,0,0,0,0,0,0,0,0,0,0,0,0);
y = new Array(-12, 6,-3,10, -9,-2,8, 2,0,0,0,0,0,0,0,0,0,0,0,0);
count = 0;
function purupuruWin()
{
if (x[count] != 0) moveBy(x[count],y[count]);
count++;
if (count >= x.length) count = 0;
setTimeout("purupuruWin()",100);
}
// --></script>
</head>
<body onLoad="purupuruWin()">
ウィンドウを揺らす
</body>
</html>

上記の中でどの部分の数字が処理開始時間を指定する
数字なのでしょうか??
お詳しい方、よろしくお願いします。

A 回答 (4件)

横槍のようで失礼しますが…



JavaScriptの処理の開始時間を指定する場合は、setTimeout()で行うのが通例だと思います。
metaタグを使うのは、この場合ではあまり適切ではないのではないでしょうか。
#2の回答にある補足のソースを改造してみました。 これではいかがでしょうか。

<html>
<head>
<META name="GENERATOR" content="IBM HomePage Builder 2001 V5.0.2 for Windows">
<title>ウィンドウを揺らすウィンドウを揺らす</title>
<script Language="JavaScript"><!--
x = new Array( 10, 3,-6, 8,-8,-7,5,-3,5,-7);
y = new Array(-12, 6,-3,10, -7,-2,8, 2,-8,6);
count = 0; n=0;

function purupuruWin()
{
if (x[count] != 0) moveBy(x[count],y[count]);
count++;
if (count >= x.length) count = 0;
n++;
if(n < 20){setTimeout("purupuruWin()",100);}
else if(n==20){setTimeout("purupuruWin()",3000);}
else if(n <= 40){setTimeout("purupuruWin()",100);}
}
// --></script>
</head>
<BODY onload="setTimeout('purupuruWin()',5000)">ウィンドウを揺らすウィンドウを揺らす</BODY>
</html>

なお、setTimeout()の書式は、

setTimeout(実行する処理,処理開始までの待ち時間)

で、待ち時間で設定する値は1000分の1秒単位になります。

失礼しました。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ようやくわかってきました。
私のイメージに近づいてきました。が、振動が止まった後、わずかにウィンドウが最初の位置より少し右上にずれてしまいます。
これを修正するにはどうすればよいのでしょうか??
何度もすいません…

お礼日時:2003/05/24 23:31

ごめんなさい。

#3のアドバイスで、一箇所スクリプトを書き間違えました。 同じ位置に戻ってくるところで処理を止めるつもりが、1回余計に処理を行うようになっていました。

else if(n <= 40){setTimeout("purupuruWin()",100);}

この行(スクリプトの終止タグの2つ上)を

else if(n < 40){setTimeout("purupuruWin()",100);}

こうしてみてください。
修正前は「nの値が40以下であるならば、以下の処理を行う」となっていましたが、修正後は「nの値が40より小さければ、以下の処理を行う」という内容になります。 これで、余計な1回分の処理を削ることができるので、同じ位置に戻ったところで処理が止まると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
これで思っていたようにすることができました!
親切にお答え頂き感謝しています。

お礼日時:2003/05/25 07:16

追記させて頂きます。


xxx.HTMLは揺れるHTMLです。

この回答への補足

ありがとうございます。
しかしながら、当方無知なものでして…(笑)
具体的に申しますと
ページを読み込んだ直後は何も行わず、5秒後に2秒間だけ振動させ、また3秒後に2秒間だけ振動させたいのです。

できれば下記に直接書き込んでもらえないでしょうか?
ちなみにxxx.htmlはd.htmlです。
お手数をおかけしますが、助けてやってください。

<html>
<head>
<META name="GENERATOR" content="IBM HomePage Builder 2001 V5.0.2 for Windows">
<title>ウィンドウを揺らすウィンドウを揺らす</title>
<script Language="JavaScript"><!--
x = new Array( 10, 3,-6, 8,-10,-7,5,-3,0,0,0,0,0,0,0,0,0,0,0,0);
y = new Array(-12, 6,-3,10, -9,-2,8, 2,0,0,0,0,0,0,0,0,0,0,0,0);
count = 0;
function purupuruWin()
{
if (x[count] != 0) moveBy(x[count],y[count]);
count++;
if (count >= x.length) count = 0;
setTimeout("purupuruWin()",100);
}
// --></script><script Language="JavaScript"><!--
x = new Array( 10, 3,-6, 8,-10,-7,5,-3,0,0,0,0,0,0,0,0,0,0,0,0);
y = new Array(-12, 6,-3,10, -9,-2,8, 2,0,0,0,0,0,0,0,0,0,0,0,0);
count = 0;
function purupuruWin()
{
if (x[count] != 0) moveBy(x[count],y[count]);
count++;
if (count >= x.length) count = 0;
setTimeout("purupuruWin()",100);
}
// --></script>
<META HTTP-EQUIV="refresh" CONTENT="150">
</head>
<BODY onload="purupuruWin()">ウィンドウを揺らすウィンドウを揺らす</BODY>
</html>

補足日時:2003/05/23 22:20
    • good
    • 0

ブルブル答えた物です。



リフレッシュは試されましたか?

HTMLの中に

<head>

<META HTTP-EQUIV="refresh" CONTENT="5;URL=http://hogehoge/xxx.HTML">

</head>

とやれば5秒後に震えるかと思います?
CONTENT="5 この数字が秒数になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
しかし私がまちがっているのかうまくいきません。

お礼日時:2003/05/24 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!