人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

3枚以上の画像を切り替えたくて以下のようなスクリプトを
書きましたが、どうも2枚までしかうまくできないようです。

if(i<3)の部分をi<4などにすると、
切り替え画像の最後が×印になってしまいます。
画像は連番で3枚用意しています。

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

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

<body onLoad="picfilter()">

<img src="A1.jpg" alt="" width="550" height="400" border="0" ID=pic1 STYLE="filter:blendTrans(duration=3.0)">


2枚であれば問題なく動きますが
3枚以上であればうまくできません。
(A1,A2,A3.jpg)

どこが悪いのか教えていただけるとうれしいです。
どうぞよろしくお願いたします。

●質問者: warumaki
●カテゴリ:インターネット ウェブ制作
✍キーワード:.jpg A1 A3 SRC スクリプト
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● horonict
●20ポイント ベストアンサー

スクリプトの前半が間違っています。

'i = 0' に修正してみてください。

var i=1;
picfilter();

function picfilter(){
 if(i<3){
 i++;
 }
 else{
 i=1;
 }
↓
var i=0;
picfilter();

function picfilter(){
 if(i<3){
 i++;
 }
 else{
 i=0;
 }
◎質問者からの返答

ありがとうございます。

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

にしてみましたが、やはり最後の画像が×印になってしまいます。

ただ、画像は3枚切り替わっているようです。

(A1,A2,A3.jpg)は用意しています。

i<4にしても同じです。

すみません。

もう一度教えていただけるとうれしいです。


2 ● ween
●20ポイント

自分の環境では、こうすれば上手く動きました。

window.setTimeout("picfilter()",3000);
 ↓
window.setTimeout(picfilter,3000);
◎質問者からの返答

ありがとうございます。

早速ためしてみます。


3 ● BdashANDdead
●20ポイント

if(i<3){

i++;

}

画像1?3までの3回ループなのでここは i<4ですね


画像自体に問題はありませんか?

試しにA2.jpgをA3.jpgに名前を変更して表示させてみて表示できるか試してみては

◎質問者からの返答

ありがとうございます。

早速ためしてみます。


4 ● Mook
●20ポイント

こちらで提示のコードを試してみましたが、3枚の画像で問題なく動作しました。


ファイル名が A1.jpg, A2.jpg, A3.jpg であれば問題ないと思いますが、

ファイル名のAや数字が全角になったりしていないでしょうか。


画像ファイルの数値が 0?2 ではなく1?3 であれば、最初の提示されたコードで

よいはずです。ちなみに A4.jpg を用意すれば、

if(i<4)

で4枚の画像で動作しました。

◎質問者からの返答

ありがとうございます。

ファイル名が悪いのかもしれません。

試してみます。


5 ● chinjoh
●20ポイント

数字->文字の変換を明示的にしてみてください。

String(num)

http://www.tohoho-web.com/js/builtin.htm#toNumber

もしこれで解決しなければ、ファイル名を出力してみてください。

数字の前にスペースが含まれてませんか?

◎質問者からの返答

教えていただいた方法は少し難しくてわかりませんでしたが

みなさんがここに書いていただいたアドバイスで

なんとかうごくようになったみたいです。

本当にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ