各商品毎に数枚の画像があります。
Aの商品に4枚の商品画像
Bの商品に3枚の商品画像
Cの商品に1枚の商品画像…
各商品画像をクリックすると、その商品画像が切り替わります。
Aの商品画像をクリックし画像を4枚目まで表示させた後、さらにクリックすると1枚目に戻る
というところまではできました。
その後、B、Cと画像を入れ、Aの商品画像をクリックした後に他の商品画像をクリックすると
画像がうまく切り替わりません。
■HTML
Aの商品画像 <figure class="item_img"> <span> <img src="img/a_img01.jpg" alt="" class="ac_img"> <img src="img/a_img02.jpg" alt=""> <img src="img/a_img03.jpg" alt=""> <img src="img/a_img04.jpg" alt=""> </span> </figure> Bの商品画像 <figure class="item_img"> <span> <img src="img/b_img01.jpg" alt="" class="ac_img"> <img src="img/b_img02.jpg" alt=""> <img src="img/b_img03.jpg" alt=""> </span> </figure> Cの商品画像 <figure class="item_img"> <span> <img src="img/c_img01.jpg" alt="" class="ac_img"> </span> </figure>
■JS
<script> $(function(){ var count = -1; $('.item_img > span').on('click' , function(){ var total = $(this).find('img').length; if(total != 1){ var total = total - 1; count ++; if ( count == total ){ $(this).find('img').eq(count).removeClass('ac_img'); count = 0; $(this).find('img').eq(count).addClass('ac_img'); count = -1; } else{ $(this).find('img').eq(count).removeClass('ac_img').next().addClass('ac_img'); } } }); }); </script>
■css
.item_img .ac_img { display: block; } .icon_switch span { position: relative; display: block; } .icon_switch figure span::after { content: ''; display: inline-block; width: calc( 70 / 340 * 100% ); padding-bottom: calc( 70 / 340 * 100% ); background-image: url(../img/ico_hads.png); background-size: contain; vertical-align: middle; position: absolute; bottom: 0; right: 0; }
原因は、最初にクリックした商品画像以外の商品画像をクリックしたときに
countの値が0にならないせいだと思いますが、
どうやったら0にできるかがわかりません。
ご教授よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー