質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.10%

bxSliderでサムネイル付きスライダーの実装

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,023

kyo-web

score 9

前提・実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kyo-web

    2019/02/13 10:45

    質問ありがとうございます。
    480px以下のcssが表記していなかったので修正しました。
    これでcss全てです。
    ご確認よろしくお願いします。

    キャンセル

  • Lhankor_Mhy

    2019/02/13 10:49

    『下のサムネイルと上のスライダーの画像がずれます』とのことですが、ずれる、とは何がずれるのでしょうか? CSSレイアウトが崩れるとかですか?

    キャンセル

  • kyo-web

    2019/02/13 11:33

    質問ありがとうございます。
    下のサムネイルを押すと上のスライダーの該当する画像に移動するスライダーなのですが、上のスライダーをカルーセルで設定した場合(maxSlides : 3)、下のサムネイル(画像1)をクリックしても上のスライダーが(画像3)を表示するといったずれになります。
    カルーセル設定でなければ、下のサムネイル(画像1)をクリックしたら、上のスライダー(画像1)になります。
    解決策があればアドバイス頂けると助かります。

    キャンセル

回答 1

checkベストアンサー

0

moveSlides:1,を追加するとどうなりますか?
jQuery Content Slider | Responsive jQuery Slider | bxSlider

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/13 14:36

    そうですね
    サンプルの画像みたいに
    HPが最初に表示された時の配列が

    画像10 画像1 画像2

    ではなくて

    画像1 画像2 画像3

    で表示されるため
    最初のサムネイルのハイライトは
    画像1にされていますが
    実際スライダーで真ん中にきている画像は画像2になっている感じです。

    キャンセル

  • 2019/02/13 15:07

    となるとページャーの画像をずらすしかなさそうですね。

    キャンセル

  • 2019/02/13 15:24

    ページャをずらして対応できました。
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる