onLoadがバッティングしているみたいで

困っています。
スクリプト2は正常に動いています。
スクリプト1は5回ループするはずが1回転しかしません。

(スクリプト1)
<SCRIPT language="JavaScript">
<!--
var time=3;
var rtime=6000;
var image= new Array();
image[0]='img/top_header01.jpg';
image[1]='img/top_header02.jpg';
image[2]='img/top_header03.jpg';
image[3]='img/top_header04.jpg';
image[4]='img/top_header00.jpg';


var i=0;
function imgchange(){
imgframe.filters.blendTrans.Apply();
imgframe.filters.blendTrans.duration=time;
imgframe.src=image[i];
imgframe.filters.blendTrans.Play();
i=i+1;
if (i>4) i=0;
t=setTimeout('imgchange()',rtime);
}

//-->
</SCRIPT>


(スクリプト2)

<Script type="text/javascript">
<!--
var i=0;
picfilter();

function picfilter(){
if(i<5){
i++;
}
else{
i=1;
}
pic1.filters.blendTrans.apply();
pic1.src="A"+i+".jpg";
pic1.filters.blendTrans.play();
window.setTimeout("picfilter()",3000);
}
//-->
</Script>

(ボディ)
<body onLoad="imgchange();javascript:setTimeout(fc, 5 * 1000);picfilter()">

HTMLソースの一番下にGoogle Analticsも入れていますが
それは関係ありますか?

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2010/01/12 18:00:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント35pt

どちらも window.i を使って回数制御しているのが問題です。

一番単純な解決策はカウント用の変数 i をそれぞれのスクリプトでバッティングしないような別名に変更することだと思います。

最初のスクリプト内の変数 i を全て script1_i、後者のスクリプト内の変数 i を script2_i に書き換える等。

id:warumaki

ご指摘ありがとうございます!

少し挙動がおかしいのですが。。

以下のソースで合っていますでしょうか。。

(スクリプト1)

<SCRIPT language="JavaScript"></p> <p><!--</p> <p>var time=3;</p> <p>var rtime=6000;</p> <p>var image= new Array();</p> <p>image[0]='img/top_header01.jpg';</p> <p>image[1]='img/top_header02.jpg';</p> <p>image[2]='img/top_header03.jpg';</p> <p>image[3]='img/top_header04.jpg';</p> <p>image[4]='img/top_header00.jpg';</p> <br> <p>var script1_i=0;</p> <p>function imgchange(){</p> <p>imgframe.filters.blendTrans.Apply();</p> <p>imgframe.filters.blendTrans.duration=time;</p> <p>imgframe.src=image[script1_i];</p> <p>imgframe.filters.blendTrans.Play();</p> <p>script1_i=script1_i+1;</p> <p>if (script1_i>4) i=0;</p> <p>t=setTimeout('imgchange()',rtime);</p> <p>}</p> <p>//--></p> <p></SCRIPT>


(スクリプト2)

<Script type="text/javascript"></p> <p><!--</p> <p>var script2_i=0;</p> <p>picfilter();</p> <p>function picfilter(){</p> <p>if(script2_i<5){</p> <p>script2_i++;</p> <p>}</p> <p>else{</p> <p>script2_i=1;</p> <p>}</p> <p>pic1.filters.blendTrans.apply();</p> <p>pic1.src="A"+script2_i+".jpg";</p> <p>pic1.filters.blendTrans.play();</p> <p>window.setTimeout("picfilter()",3000);</p> <p>}</p> <p>//--></p> <p></Script>

2010/01/05 18:25:57

その他の回答1件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226ここでベストアンサー

ポイント35pt

どちらも window.i を使って回数制御しているのが問題です。

一番単純な解決策はカウント用の変数 i をそれぞれのスクリプトでバッティングしないような別名に変更することだと思います。

最初のスクリプト内の変数 i を全て script1_i、後者のスクリプト内の変数 i を script2_i に書き換える等。

id:warumaki

ご指摘ありがとうございます!

少し挙動がおかしいのですが。。

以下のソースで合っていますでしょうか。。

(スクリプト1)

<SCRIPT language="JavaScript"></p> <p><!--</p> <p>var time=3;</p> <p>var rtime=6000;</p> <p>var image= new Array();</p> <p>image[0]='img/top_header01.jpg';</p> <p>image[1]='img/top_header02.jpg';</p> <p>image[2]='img/top_header03.jpg';</p> <p>image[3]='img/top_header04.jpg';</p> <p>image[4]='img/top_header00.jpg';</p> <br> <p>var script1_i=0;</p> <p>function imgchange(){</p> <p>imgframe.filters.blendTrans.Apply();</p> <p>imgframe.filters.blendTrans.duration=time;</p> <p>imgframe.src=image[script1_i];</p> <p>imgframe.filters.blendTrans.Play();</p> <p>script1_i=script1_i+1;</p> <p>if (script1_i>4) i=0;</p> <p>t=setTimeout('imgchange()',rtime);</p> <p>}</p> <p>//--></p> <p></SCRIPT>


(スクリプト2)

<Script type="text/javascript"></p> <p><!--</p> <p>var script2_i=0;</p> <p>picfilter();</p> <p>function picfilter(){</p> <p>if(script2_i<5){</p> <p>script2_i++;</p> <p>}</p> <p>else{</p> <p>script2_i=1;</p> <p>}</p> <p>pic1.filters.blendTrans.apply();</p> <p>pic1.src="A"+script2_i+".jpg";</p> <p>pic1.filters.blendTrans.play();</p> <p>window.setTimeout("picfilter()",3000);</p> <p>}</p> <p>//--></p> <p></Script>

2010/01/05 18:25:57
id:pah00 No.2

回答回数208ベストアンサー獲得回数5

ポイント35pt

>HTMLソースの一番下にGoogle Analticsも入れていますが

>それは関係ありますか?

ぜんぜん関係ありません。安心してください。

id:warumaki

ありがとうございます!

たいへん参考になります!

2010/01/05 18:27:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません