カラーミーのスライドショーをレスポンシブにしたいときの確認点

スライダー

カラーミーショップ では管理画面のデザイン→スライドショーと進むとスライドショーを設定できます。

レスポンシブ対応のテーマを使っている場合は、ブラウザのサイズを変えたりスマホで閲覧しても、スライダー内の画像も自動で縮小、拡大されて表示されるはず。

ただ、経験上ですが、選ぶテーマによって、レスポンシブの動きが2種類あって、

・スライドショーを表示した状態でブラウザの大きさを変えると、それに合わせてサイズが変わるもの(つまりは画像の縦横比率を保ったままリサイズする) 

・開いたブラウザのサイズに合わせてスライドショーの画像サイズを変更する

という感じ。

後者はブラウザを動かしても自動では画像サイズが変わらず、「更新」をして読み込み直したタイミングで画像サイズが変わります。

パソコンで閲覧したときにブラウザサイズを変えなければ、これでもいいのかな・・とは思うのですが、ちょっと気持ち悪いので修正することにしました。

その作業の覚書になります。

というのも、今回、カラーミーショップ のテーマ「カラーミーショップ キット(2カラム)」をカスタマイズしていたのですが、同じスライドショーのコードでもテーマによって、スライドショーの見え方が違う、というのに気が付いたのです。

カラーミーショップ で使っているスライダーの本体は、おそらくbxSliderという、よく使われいるJQueryだと思われます。

ちなみに、カラーミーショップ のテンプレートの入れたい箇所に、カラーミーショップ の「出力用HTMLタグ」を張り付けるわけですが、bxSliderにはいろんなオプションがあり、

<{if $slideshow_html}>
 <div class="slider">
 <{$slideshow_html}>
 </div>
 <script type="text/javascript">
 //<![CDATA[
 $(function(){
 $('#slider').bxSlider({
 auto: true,
 pause: 2000,//静止時間
 speed: 1000,//スライド速度
 controls: false,//prev/nextを表示するかどうか
 captions: true,//字幕を出すかどうか
 mode: 'fade'//エフェクトを表示するかどうか
 });
 });
 //]]>
 </script>

この部分に

responsive: true

を追加するだけでレスポンシブに対応できるものも・・あるかもしれません。
(調べてないけど)

今回、カラーミーショップ キット2カラムに単純にスライドショーの出力用HTMLを張り付けましたが、可変にはならず。

で、またテーマを切り替えて確認して、可変になっているテンプレートのスタイルシートをチェック。

スライダーに関すると思われるスタイルシート(以下)をコピー。

/*
* slider
*/
.slider {
margin-top: 2em;
padding: 0 1.4%;
position: relative;
}
.bx-viewport {
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
left: 0 !important;
border: none !important;
}
#slider div {
width: 100% !important;
}/*
* slider
*/
.slider {
margin-top: 2em;
padding: 0 1.4%;
position: relative;
}
.bx-viewport {
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
left: 0 !important;
border: none !important;
}
#slider div {
width: 100% !important;
height:auto
}

をとりあえず、カラーミーショップ キットの共通CSSに張り付けたら行けました。

どうやら、最後の

#slider div {
width: 100% !important;
height:auto
}

これが重要っぽいです。

カラーミーショップ の機能を使ったスライドショーでレスポンシブに悩まされている方、お試しください。