Skip to content

contranote.net

  • BLOG
  • DISCOGRAPHY
    • Contranote
    • Compilation
    • Etc.
  • ABOUT
  • BIOGRAPHY
  • Toggle search form

EC-CUBE2の商品画像をレスポンシブなスライダーにする

Posted on 2019年5月25日2019年6月10日 By 二矢

EC-CUBE 2.13.5の商品詳細ページのメイン画像部分を、レスポンシブに対応したスライドギャラリーにカスタムしようじゃないか、というお話。

要件はこんな感じ。
・レスポンシブ対応
・スマホでの閲覧時、スワイプで切り替え
・PCでの閲覧時、サムネイルクリックで切り替え
・画像の拡大ポップアップはなし

使用したのは、slick.js というプラグイン。
簡単に導入できて多機能でカスタムも容易と評判です。
https://kenwheeler.github.io/slick/

まずは、cssファイルとjsファイルを読み込む記述を追加しましょう。
site_frame.tpl への追加が楽チンでしょうか。

<!--{if $tpl_page_class_name === "LC_Page_Products_Detail"}-->
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css"/>
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<!--{/if}-->

商品詳細ページでだけ読み込ませればいいので、その分岐で囲んでいます。

次に、スライダーを機能させるための記述を追加します。

<!--{if $tpl_page_class_name === "LC_Page_Products_Detail"}-->
<script>
$(document).ready(function(){
  $('.slick-photos').slick({
    arrows:false,
    dots:true,
    prevArrow: '<a class="slick-prev" href="#"><i data-icon="ei-arrow-left" data-size="m"></i></a>',
    nextArrow: '<a class="slick-next" href="#"><i data-icon="ei-arrow-right" data-size="m"></i></a>',
    customPaging: function(slick,index) {
        var targetImage = slick.$slides.eq(index).find('img').attr('src');
        return '<img src=" ' + targetImage + ' " alt="">';
    }
  });
});
</script>
<!--{/if}-->

これも商品詳細ページでのみ読み込まれるようにしておきました。

次に、商品詳細ページのメイン画像部分のソースを変更します。
/products/detail.php のメイン画像部分をまるっと書き換えちゃいましょう。

<div class="photo slick-photos">
  <!--{assign var=key value="main_image"}-->
  <!--★画像★-->
  <div><img src="<!--{$arrFile[$key].filepath|h}-->" alt="<!--{$arrProduct.name|h}-->"></div>
  <!--{section name=cnt loop=$smarty.const.PRODUCTSUB_MAX}-->
    <!--{assign var=key value="sub_title`$smarty.section.cnt.index+1`"}-->
    <!--{assign var=ikey value="sub_image`$smarty.section.cnt.index+1`"}-->
    <!--{if $arrProduct[$key] != "" or $arrProduct[$ikey]|strlen >= 1}-->
      <!--{assign var=ckey value="sub_comment`$smarty.section.cnt.index+1`"}-->
      <!--▼サブ画像-->
      <!--{assign var=lkey value="sub_large_image`$smarty.section.cnt.index+1`"}-->
      <!--{if $arrProduct[$ikey]|strlen >= 1}-->
        <div class="slick-slide"><img src="<!--{$arrFile[$ikey].filepath}-->" alt="<!--{$arrProduct.name|h}-->" width="<!--{$arrFile[$ikey].width}-->" height="<!--{$arrFile[$ikey].height}-->"></div>
      <!--{else}-->
      <!--{/if}-->
      <!--▲サブ画像-->
    <!--{/if}-->
  <!--{/section}-->
</div>

あとは、cssでお好みの形に整えれば、出来上がりです。

BLOG

投稿ナビゲーション

Previous Post: EC-CUBE2の受注メモ活用法
Next Post: EC-CUBE2で注文時の「その他お問い合わせ」にテキスト挿入

Related Posts

どうしても邪魔に感じる BLOG
Misery SignalsのVocal交代劇 BLOG
冒険者さんありがとうキャンペーン中 BLOG
うわさの地図(σ´Д`)σ BLOG
nimes[ニーム]WEBサイト:制作実績(2015/12) BLOG
明日です BLOG

最近の投稿

  • EC-CUBE2の送信メールの件名をカスタムしてみた 2019年6月10日
  • EC-CUBE2で注文時の「その他お問い合わせ」にテキスト挿入 2019年5月27日
  • EC-CUBE2の商品画像をレスポンシブなスライダーにする 2019年5月25日
  • EC-CUBE2の受注メモ活用法 2019年5月23日
  • Misery SignalsのVocal交代劇 2019年5月20日

アーカイブ

カテゴリー

  • ABOUT
  • BIOGRAPHY
  • BLOG
  • DISCOGRAPHY

Copyright © 2025 contranote.net.

Powered by PressBook Masonry Blogs