前提・実現したいこと
bxSliderでサムネイル付きのスライダーを実装したい。
スライダーの部分は3枚画像が表示されていて、
その下にサムネイルを写真の数分表示させる。
発生している問題・エラーメッセージ
画像1の部分だけ(一枚表示)で実装した場合は問題ないのですが
サンプルイメージのように画像を3枚横並び(カルーセル)で表示したら
下のサムネイルと上のスライダーの画像がずれます。
該当のソースコード
html head内 <script> $(document).ready(function(){ //メインスライド用 $('.bxslider01').bxSlider({ slideWidth : 700, slideMargin : 0, maxSlides : 3, pagerCustom: '#bx-pager', //ページャーをサムネイルにする nextSelector: '#NextIcon', //"次へ”矢印をカスタマイズするための記述 prevSelector: '#PrevIcon'//"前へ”矢印をカスタマイズするための記述 }); }); </script> <div class="slider"> <div class="silderinner"> <!--メインスライダー--> <ul class="bxslider01"> <li><img src="img/gallery1.png"></li> <li><img src="img/gallery2.png"></li> <li><img src="img/gallery3.png"></li> <li><img src="img/gallery4.png"></li> <li><img src="img/gallery5.png"></li> <li><img src="img/gallery6.png"></li> <li><img src="img/gallery7.png"></li> <li><img src="img/gallery8.png"></li> <li><img src="img/gallery9.png"></li> <li><img src="img/gallery10.png"></li> </ul> <!--// メインスライダー--> <!--サムネイル--> <div class="controlWrap"> <p id="PrevIcon"></p> <p id="NextIcon"></p> </div><!--/control--> <div class="wrap"> <ul id="bx-pager" class="bxslider02 clearfix"> <li><a data-slide-index="0" href=""><img src="img/gallery1.png"></a></li> <li><a data-slide-index="1" href=""><img src="img/gallery2.png"></a></li> <li><a data-slide-index="2" href=""><img src="img/gallery3.png"></a></li> <li><a data-slide-index="3" href=""><img src="img/gallery4.png"></a></li> <li><a data-slide-index="4" href=""><img src="img/gallery5.png"></a></li> <li><a data-slide-index="5" href=""><img src="img/gallery6.png"></a></li> <li><a data-slide-index="6" href=""><img src="img/gallery7.png"></a></li> <li><a data-slide-index="7" href=""><img src="img/gallery8.png"></a></li> <li><a data-slide-index="8" href=""><img src="img/gallery9.png"></a></li> <li class="last"><a data-slide-index="9" href=""><img src="img/gallery10.png"></a></li> </ul> </div><!--/wrap--> <!--// サムネイル--> </div><!--/inner--> </div><!--/slider--> css div.slider { width:100%; display:block; margin:0px; overflow: hidden; position:relative; } div.silderinner { position:relative; left:50%; width:7000px; margin-left:-3500px; } ul.bxslider01 li {/*メインスライダー*/ display:block; width:700px; height:500px; } ul.bxslider01 li img{ display:block; width:700px; height:auto; } .wrap { width:700px; display:block; margin:0 auto; } ul.bxslider02 { width: 100%; } ul.bxslider02 li { width: 19%; margin-left: 1.25%; float: left; margin-bottom: 10px; } ul.bxslider02 li:nth-child(6) { margin-left: 0%; clear: both; } ul.bxslider02 li:nth-child(4) { margin-left: 1.25%; clear: none; } ul.bxslider02 li:nth-child(7) { margin-left: 1.25%; clear: none; } ul.bxslider02 li:nth-child(10) { margin-left: 1.25%; clear: none; } ul.bxslider02 li a {/*サムネイル*/ display:block; width: 100%; } ul.bxslider02 li a img{/*サムネイルの画像*/ display:block; height:auto; } div.controlWrap { width:700px; display:block; position:relative; margin:0 auto; height: 70px; } div.controlWrap p#PrevIcon a{/*矢印画像(前へ)*/ display:block; width:30px; height:31px; position:absolute; background: url(../img/left.png) left center no-repeat; color:#fff; top:20px; left:50%; margin-left: -30px; text-indent:-9999px; } div.controlWrap p#NextIcon a{/*矢印画像(次へ)*/ display:block; width:30px; height:31px; position:absolute; background: url(../img/right.png) left center no-repeat; color:#fff; top:20px; left: 50%; margin-left: 30px; text-indent:-9999px; } #bx-pager a img { opacity: 0.5; filter: alpha(opacity=50); } #bx-pager a.active img { opacity: 1; filter: alpha(opacity=100); } css 480px以下 div.slider { width:380px; display:block; margin:40px auto; overflow: hidden; position:relative; } ul.bxslider01 li {/*メインスライダー*/ display:block; width:100%; } ul.bxslider01 li img{ } .wrap { width: 100%; display:block; margin:0 auto; } ul.bxslider02 { width: 380px; margin: auto; } ul.bxslider02 li { width: 30%; margin-left: 5%; float: left; margin-bottom: 10px; } ul.bxslider02 li:first-child { margin-left: 0%; } ul.bxslider02 li:nth-child(4) { margin-left: 0%; clear: both; } ul.bxslider02 li:nth-child(7) { margin-left: 0%; clear: both; } ul.bxslider02 li:nth-child(10) { margin-left: 0%; clear: both; } ul.bxslider02 li a {/*サムネイル*/ display:block; width: 100%; } ul.bxslider02 li a img{/*サムネイルの画像*/ display:block; height:auto; } div.controlWrap { width:380px; display:block; position:relative; margin:0 auto; height: 70px; }
試したこと
maxSlidesを変更したり、startslideを変更したりしたのですが、改善できませんでした。
アドバイス頂ければ助かります。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> スライダー機能を実装中に以下のエラーメッセージが発生しました。
「エラーメッセージ」ではないですよね?質問テンプレートから作られたのかもしれませんが、「エラーメッセージ」とあると「どんなエラーメッセージがあったのだろう?」と見ている側としては期待しますので、その部分は実態で書くようにしてください。(質問は編集できますので適宜ご対応ください)
失礼いたしました。
修正しておきました。
cssは記載いただいたもので全てでしょうか?
質問ありがとうございます。
480px以下のcssが表記していなかったので修正しました。
これでcss全てです。
ご確認よろしくお願いします。
『下のサムネイルと上のスライダーの画像がずれます』とのことですが、ずれる、とは何がずれるのでしょうか? CSSレイアウトが崩れるとかですか?
質問ありがとうございます。
下のサムネイルを押すと上のスライダーの該当する画像に移動するスライダーなのですが、上のスライダーをカルーセルで設定した場合(maxSlides : 3)、下のサムネイル(画像1)をクリックしても上のスライダーが(画像3)を表示するといったずれになります。
カルーセル設定でなければ、下のサムネイル(画像1)をクリックしたら、上のスライダー(画像1)になります。
解決策があればアドバイス頂けると助かります。
回答1件
あなたの回答
tips
プレビュー