dポイントプレゼントキャンペーン実施中!

お世話になります。
こちらのサイトを参考にスライドショーを作っているのですが、
ループしないで、最後の画像まできたら、ストップする記述を教えて下さい。
どうぞ宜しくお願い致しますm(==)m

http://www.greenwich.co.jp/blog-archives/p/1903


最後の部分
case 7: //flgが7の場合
//7枚目から8枚目に切り替え
$("#img7").fadeOut(1500);
$("#img8").fadeIn(700);
break;
}

flg++;
if(flg>7){
flg=7; //flgが8を越えたら0に戻る
}

A 回答 (2件)

あまり優れたサンプルとは言えないですね。


時間があったので少し書き換えてみましたがどうでしょう。
簡単に書きましたが、サンプルと比較して以下の利点があります。


・htmlの各img要素にidを付与する必要がない。
・画像の枚数によってJavaScriptを編集する必要がない。
・サンプルより少しだけ高速に動作
・JavaScriptの記述がシンプル
・リピート再生するかどうかを変数で設定可能


<script type="text/javascript">
$(function(){
//画像リスト
var $img = $("img","#stage");
//カウンター初期値
var no = 0;
//カウンター最大値
var maxNo = $img.length - 1;
//画像切替間隔(ミリ秒で指定)
var interval = 3500;
//フェードイン・アウトの処理時間(ミリ秒で指定)
var fadetime = 2000;
//リピート再生するかどうか(true or false)
var repeatFlg = false;
//実行部
var timer = setInterval(function(){
if(no != maxNo){
$img.eq(no).fadeOut(fadetime);
$img.eq(no+1).fadeIn(fadetime);
no++;
}else{
if(repeatFlg){
$img.eq(no).fadeOut(fadetime);
$img.eq(0).fadeIn(fadetime);
no = 0;
}else{
clearInterval(timer);
}
}
},interval);
});
</script>
    • good
    • 0
この回答へのお礼

tracerさま☆

お返事遅くなってすみません;

丁寧に改訂版まで作って頂きありがとうございましたm(==)m

ちょっと初心者過ぎまして、いろいろ解読しながら当てはめていくのに時間がかかるので、

またお伺いするかもですが、

どうもありがとうございました☆

お礼日時:2014/12/08 16:45

8枚目を表示したらタイマーを止めればいいのでは。


https://sites.google.com/site/jqueryjavascript/s …

また、止めたいわけですから、
if(flg>7){
flg=7; //flgが8を越えたら0に戻る
}
は不要ですよね。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
すみませ~ん;
初心者なもので、せいぜい、写真の枚数やタイムを変えることくらいしか、応用?がききません(><)
ifからあとはとるとして、
提示頂いた部分はどう組み合わせたらいいのでしょうか(;;)

お礼日時:2014/12/04 14:53

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