$(function(){ //CT スライドのフェードで切り替わる速さ //sT 次のスライドまでの時間 var cT = 3000, sT = 5000; //index 何番目のスライドかを計測する変数 //$img スライドさせる変数の定義 //imgLen 変数 スライドの枚数を格納 var index = 0, $img = $('#slide').children('div'), imgLen = $img.length; //最初の画像以外display:noneにする $img.not(':first').css('display','none'); //サムネイルを画像の枚数分( imgLen )生成 for (var i=0; i'); } //var $tN $('#thum li'); Jqueryオブジェクトに変換し変数の定義 var $tN = $('#thum li'); //最初のサムネイルにだけアクティブのクラスを付ける $tN.first().addClass('active'); //サムネイルがクリックされたときの動作 $tN.click(function(){ //現在動作中のアニメーション処理を全て中止 $img.stop(); //下で定義している関数 slides の動作を停止させる clearInterval(slides); //クリックされたサムネイルにクラス「active」を追加。siblings()を使用してクリックされたもの以外のすべての兄弟要素からクラスactiveを削除 $(this).addClass('active').siblings().removeClass('active'); //number クリックされたサムネイルの番号を取得(表示されているサムネイルの左から0,1,2,3の順番) //$choiceImgにnumberで取得した番号からその番号から+1した枚数目のスライド画像を代入 //numberが0なら1枚目、1なら2枚目のスライド画像が「$choiceImgの変数」に入る var number = $(this).index() $choiceImg = $img.eq(number); //indexに(number) % imgLenの余りを代入 ...計算後のnumberとindexの値がすべて同じなので余りの計算をする意味不明です。 index = (number) % imgLen; //$choiceImg以外のすべての兄弟要素をフェードアウトする $choiceImg.siblings().stop().fadeOut( 'cT', function(){ $(this).animate({'opacity': 0}); } ); //$choiceImgをフェードインする $choiceImg.css({'opacity': 1}).stop().fadeIn(); //start()関数の記述を実行(スライドを実行) start(); }); var $btn_next = $('#btn_next'), $btn_prev = $('#btn_prev'); $btn_next.click(function(){ //次のスライドの値を代入 var next = (index +1) % imgLen; //現在アクティブ状態の次のサムネイルをクリックする $tN.eq(next).click(); }); $btn_prev.click(function(){ //前のスライドの値を代入 var prev = (index -1) % imgLen; //現在アクティブ状態の前のサムネイルをクリックする $tN.eq(prev).click(); }); function start(){ slides = setInterval(function(){ //次のスライド画像、サムネイルの番号を変数に格納 %で計算(左を右で割った余り)することで最後のスライドをカバー、最後のスライドの倍nextには0が代入される var next = (index +1) % imgLen; //全てのサムネイルのクラスactiveを削除nextで取得した番号のサムネイルにアクティブを追加 $tN.removeClass('active').eq(next).addClass('active'); //現在の表示中のスライドをフェードアウトにし、次に表示するスライドをフェードインへ $img.eq(index).stop().fadeOut( 'cT', function(){ $(this).animate({'opacity': 0}); } ); $img.eq(next).stop().css({'opacity': 1}).stop().fadeIn(); index = next; },sT + cT); }; //start()関数の記述を実行(スライドを実行) start(); });