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/05 17:59:04
  • 終了:2010/01/12 18:00:04

ベストアンサー

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252010/01/05 18:08:08

ポイント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

y-kawaz回答回数1420ベストアンサー獲得回数2252010/01/05 18:08:08ここでベストアンサー

ポイント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

pah00回答回数208ベストアンサー獲得回数52010/01/05 18:13:13

ポイント35pt

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

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

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

id:warumaki

ありがとうございます!

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

2010/01/05 18:27:26

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません