前提・実現したいこと
カラーミーで通販サイトの商品ページをカスタマイズしています。
・現状
サムネイルをクリックするとメインイメージ写真が入れ替わるのみ
・こう変えたい
上記に加えて、メインイメージ写真をクリックした時にも、サムネイルがメインイメージ写真の場所に表示されるようにしたい
・条件
サムネイルは商品ごとに写真枚数が違う
メインイメージをクリックするどんどん隣のサムネイルがメインイメージの場所に表示され、最後まで行くと最初に戻るループにしたい
該当のソースコード
html
1<div class="container-section product-image col-md-12 col-lg-7 col"> 2 <div class="product-image-main" style="height: 440px;"> 3 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o3.jpg?cmsp_timestamp=20200619112104" class="mainImage" style="max-height: 440px; display: block;"></div> 4 <div class="product-image-thumb grid_row"> 5 <ul> 6 <li class="col-lg-3 col" style="height: 101.219px;"> 7 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 8 </li> 9 <li class="col-lg-3 col" style="height: 101.219px;"> 10 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o1.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 11 </li> 12 <li class="col-lg-3 col" style="height: 101.219px;"> 13 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o2.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 14 </li> 15 <li class="col-lg-3 col" style="height: 101.219px;"> 16 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o3.jpg?cmsp_timestamp=20200619112104" class="thumb thumb-active" style="max-height: 101.219px;"> 17 </li> 18 <li class="col-lg-3 col" style="height: 101.219px;"> 19 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o4.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 20 </li> 21 <li class="col-lg-3 col" style="height: 101.219px;"> 22 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o5.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 23 </li> 24 <li class="col-lg-3 col" style="height: 101.219px;"> 25 <img src="//img17.shop-pro.jp/PA01168/080/product/151826293_o6.jpg?cmsp_timestamp=20200619112104" class="thumb" style="max-height: 101.219px;"> 26 </li> 27 </ul> 28 </div> 29 </div>
該当のソースコード
css
1.thumb { 2 max-width: 100%; 3 width: auto; 4 height: auto; 5 border: 1px solid #dbdbdb; 6} 7.thumb-active { 8 border: 1px solid <{$current_color}>; 9}
javaScript
1 2 $('img.thumb').click(function(){ 3 4 $(this).parent().siblings().children().removeClass('thumb-active'); 5 6 var selectedSrc = $(.thumb).attr('src'); 7 $('img.mainImage').stop().fadeOut(300, 8 function(){ 9 $('img.mainImage').attr('src', selectedSrc); 10 $('img.mainImage').fadeIn(300); 11 } 12 ); 13 14 $(this).addClass('thumb-active'); 15 16 }); 17});
javaScript
1 2 $('img.thumb').click(function(){ 3 4 $(this).parent().siblings().children().removeClass('thumb-active'); 5 6 var selectedSrc = $(.thumb).attr('src'); 7 $('img.mainImage').stop().fadeOut(300, 8 function(){ 9 $('img.mainImage').attr('src', selectedSrc); 10 $('img.mainImage').fadeIn(300); 11 } 12 ); 13 14 $(this).addClass('thumb-active'); 15 16 }); 17 $('img.mainImage').click(function(){ 18 19 $(this).parent().siblings().children().removeClass('thumb-active'); 20 21 var selectedSrct = $('img.thumb').next().attr('src'); 22 $('img.mainImage').stop().fadeOut(300, 23 function(){ 24 $('img.mainImage').attr('src', selectedSrct); 25 $('img.mainImage').fadeIn(300); 26 } 27 ) 28 29 $(this).addClass('thumb-active'); 30 }); 31 });
試したこと
jsのコード追加( $('img.mainImage').click(function(){以降を追加しています)
selectedSrctという変数を作って、thumbのsrcをクリックするごとに取得するようにし、
mainImageをクリックした際に、その変数が発動してメインイメージの場所に表示されるようにしたいのですが、、、
今のままだと、クリックをするごとに、サムネイルを反映しないママのメインイメージがただフェードイン アウトを繰り返すだけになっています。
クリックするごとに隣のサムネイル のsrcを取得させるには、どのようにすればよろしいでしょうか。
回答1件
あなたの回答
tips
プレビュー