困っています。
スクリプト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も入れていますが
それは関係ありますか?
どちらも window.i を使って回数制御しているのが問題です。
一番単純な解決策はカウント用の変数 i をそれぞれのスクリプトでバッティングしないような別名に変更することだと思います。
最初のスクリプト内の変数 i を全て script1_i、後者のスクリプト内の変数 i を script2_i に書き換える等。
どちらも window.i を使って回数制御しているのが問題です。
一番単純な解決策はカウント用の変数 i をそれぞれのスクリプトでバッティングしないような別名に変更することだと思います。
最初のスクリプト内の変数 i を全て script1_i、後者のスクリプト内の変数 i を script2_i に書き換える等。
ご指摘ありがとうございます!
少し挙動がおかしいのですが。。
以下のソースで合っていますでしょうか。。
(スクリプト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>
>HTMLソースの一番下にGoogle Analticsも入れていますが
>それは関係ありますか?
ぜんぜん関係ありません。安心してください。
ありがとうございます!
たいへん参考になります!
ご指摘ありがとうございます!
少し挙動がおかしいのですが。。
以下のソースで合っていますでしょうか。。
(スクリプト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>