ECサイト構築プラットフォーム、フューチャーショップ(FutureShop2)を利用されている方専用記事。
標準の寂しい商品画像スライド機能に、ページネーションを追加できる方法をご紹介します。
ワラ
目次
必要ファイルをダウンロード
bxslider
今回スライダー機能を実装するにあたり『bxslider』プラグインを使用。
以下の公式サイトからファイルをダウンロード
https://bxslider.com/
今回必要なファイルは以下の1つだけ、自身のサーバ環境にアップロードし使用します。
jquery.bxslider.min.js
商品ページへ必要ファイルの出力。記述。
必要なファイルを商品ページでのみ出力/記述するようにします。
全ページに出力/記述してしまうとページ読み込み速度の低下や、予期せぬ挙動が発生する原因となってしまいます。
コメントパターンへの登録
fs2管理画面 > モバイル > ページ設定 > コメントパターン一覧
上記項目から『パターン新規登録』。
コメント名:任意
コメント内容:下記の内容を記述
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery.bxslider.min.js"></script> <script type="text/javascript"> jQuery(function($){ //商品詳細代替スライダー (function(){ if ($('.fs_sp_flick_item_container').length > 0) { //サブ画像のALTテキストを削除 // $(".FS2_additional_image_detail_sub .FS2_additional_image_detail_alt").remove(); //スライダーラッパー要素生成 var $itemSlider = $("", { "class": "itemslider" }); var $listItemSlider = $("", { "class": "list_itemslider" }); $itemSlider.insertBefore(".FS2_ItemThumbnails"); $listItemSlider.appendTo($itemSlider); //スライダー要素移動 $(".FS2_ItemThumbnails .fs_sp_flick_item_container").appendTo($listItemSlider); $(window).on('load', function() { $listItemSlider.bxSlider(); }); //スライダー発動 /* var allImage = $listItemSlider.find("img"); var allImageCount = allImage.length; var completeImageCount = 0; for(var i = 0; i < allImageCount; i++){ $(allImage[i]).on("load", function(){ completeImageCount ++; if (allImageCount === completeImageCount){ $listItemSlider.bxSlider(); } }); } */ //元のスライダーを削除 $(".FS2_ItemThumbnails").remove(); } })(); }); </script>
jqueryの読み込みについて
すでにサイト内にjqueryライブラリを読み込み済みの場合、以下の記述は必要ありません。挙動エラーの原因となる可能性があるので外してください。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
画像タップイベントを無効化
fs2の画像ホスティングオプションではアンカータグが設定されており、タップすると画像URLページへと遷移されてしまいます。
ユーザー体験としてはいい印象を受けないので以下記述を追加して、タップイベントを無効化してもいいかもしれないですね。
<script type="text/javascript"> $(function(){ $('.fs_sp_flick_item_container a').click(function(){ return false; }) }); </script>
CSSの設定
商品画像、ページネーションのデザイン設定を行います。
fs2管理画面 > モバイル > デザイン設定 > デザイン設定
デザインCSSの編集:下記の内容を記述
/* FS2打消し用 -------------------------------------*/ div:after {content:".";display: none;height:0;clear:both;visibility:hidden;} /* 商品画像 スライダー -------------------------------------*/ /* ロード対策 */ .itemslider .fs_sp_flick_item_container{width: 100%;} .itemslider>.list_itemslider>.fs_sp_flick_item_container:nth-of-type(n+2) {display:none} .itemslider .fs_sp_flick_item_container img{width:100%; display:block;} .itemslider .bx-wrapper{width:100%; margin:0 auto 20px; position:relative} /* ページネーション */ .itemslider .bx-wrapper .bx-pager{text-align:center;padding: 0 30px;width: 81%;width: -webkit-calc(100% - 60px);width: calc(100% - 60px);display: table;margin-top: 30px;} .itemslider .bx-wrapper .bx-pager .bx-pager-item{display: table-cell; *zoom:1; *display:inline;font-size: 0;} .itemslider .bx-wrapper .bx-pager .bx-pager-item:last-child{margin-right:0} .itemslider .bx-wrapper .bx-pager .bx-pager-item a{width: auto;height: 2px;display:block;border: none;cursor:pointer;text-indent:-9999px;text-align:left;border-radius: 0;background: #c9c9c9;transition: .3s ease-in-out;} .itemslider .bx-wrapper .bx-pager .bx-pager-item a.active{background: #2293d3;cursor:default;} .itemslider .bx-wrapper .bx-controls-direction a{position:absolute;top:50%;outline:0;text-indent:-9999px;z-index: 1000;-webkit-transform:translate(0,-50%);-moz-transform:translate(0,-50%);-ms-transform:translate(0,-50%);-o-transform:translate(0,-50%);transform: translate(0,-50%);margin-top: -12px;} .itemslider .bx-wrapper .bx-next{ background:rgba(0,0,0,0.20); width:42px; height:42px; -moz-border-radius:21px; -webkit-border-radius:21px; -o-border-radius:21px; -ms-border-radius:21px; border-radius:21px; z-index:10; right:3%} .itemslider .bx-wrapper .bx-next::after{ right:17px; z-index:11; text-shadow:none; display:inline-block; position:absolute; top:33%; visibility:visible; border-top:2px solid #fff; border-right:2px solid #fff; content:""; -webkit-transform:rotate(45deg); transform:rotate(45deg); width:12px; height:12px} .itemslider .bx-wrapper .bx-prev{ background:rgba(0,0,0,0.20); width:42px; height:42px; -moz-border-radius:21px; -webkit-border-radius:21px; -o-border-radius:21px; -ms-border-radius:21px; border-radius:21px; z-index:10; left:3%} .itemslider .bx-wrapper .bx-prev::after{ left:17px; z-index:11; text-shadow:none; display:inline-block; position:absolute; top:33%; visibility:visible; border-left:2px solid #fff; border-bottom:2px solid #fff; content:""; -webkit-transform:rotate(45deg); transform:rotate(45deg); width:12px; height:12px}
※bxsliderプラグインの挙動対策(読み込まれるまで画像が縦に並ぶ)として、読み込み完了まで2枚目以降の画像を非表示としております。
商品ページへコメントパターンの出力
fs2管理画面 > モバイル > ページ設定 > 各ページ設定 > 商品
商品詳細のコメントパターンへ先ほど登録したものを設定します。
これで設定は完了です。
実環境をご確認ください。スライダー機能が実装され、ページネーションが出現していませんか。
ページネーションデザインを変更したい場合、任意でCSSの調整を行ってください。
さいごに
少しのUI/UX改善で、離脱率/回遊率/CV率に大きく影響することがあります。
自身がユーザ目線でサイトを使用し、少しでも気になる箇所があれば、徹底的に解決しましょう。