質問: $active.next("li").length?$active.next("li"):$("#viewer ul li:first"); $active.fadeOut($fade_speed).removeClass("active"); $next.fadeIn($fade_speed).addClass("active"); },$interval); }); ```
回答: こんにちは。 動作確認してないので、上手く動くか分かりませんが 以下のコードでどうでしょうか? ※認識違いがございましたら、すみません * $interval を 3000ミリ秒に変更 * 初回のみ setTimeout を使って 3000ミリ秒後に changeImage() を実行 * ↑以降は 3000ミリ秒単位で changeImage() を実行 ``` $(function(){ var $width =800; // 横幅 var $height =400; // 高さ var $interval = 3000; // 切り替わりの間隔(ミリ秒) var $fade_speed = 3000; // フェード処理の早さ(ミリ秒) $("#viewer ul li").css({"position":"relative","overflow":"hidden","width":$width,"height":$height}); $("#viewer ul li").hide().css({"position":"absolute","top":0,"left":0}); $("#viewer ul li:first").addClass("active").show(); setTimeout(function(){ function changeImage(){ var $active = $("#viewer ul li.active"); var $next = $active.next("li").length?$active.next("li"):$("#viewer ul li:first"); $active.fadeOut($fade_speed).removeClass("active"); $next.fadeIn($fade_speed).addClass("active"); } changeImage(); setInterval(changeImage,$interval); },$interval); }); ```