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

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

ただいまの
回答率

88.21%

slick.jsのスライダーを同一ページ内に複数設置した際に切り分けたい

受付中

回答 1

投稿 編集

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

■前提・実現したいこと
Slick js のスライダーを同一ページ内に複数設置したいのですが、複数設置した場合、表示が壊れてしまいます。各々で動かしたい場合のコードの書き方をご享受ください。

■発生している問題・エラーメッセージ
一つのページでidを指定しているため、同一ページでスライダーを設置すると処理が同じなため被ってしまう状態です。個別に設定を変える事で動くとは思うのですが、どのようにidの設定を変更するべきか分かりかねています。
※スライダーの設定は外注に依頼したため、私の知識ではどの部分をコーディングしていいかわからないため、お力添えいただければ幸いです!

何か必要なものがございましたらお気軽にお問い合わせください。

>ブラウザデベロッパーツールのコンソールにエラーが出ていないかもご確認ください
コンソールでのエラーはでておりません。

>また「PHP」はどのように関係するのでしょうか?質問内容からは分かりませんでした。
Wordpressを使っているため、使っていない場合と比べて、JQueryの書き方が違うと思いPHPと記載しました。

スライダーが崩れている画像

(html)
<div id="wrap">
<div id="main_slider">
<div class="slide-item">
<div class="slider_text slider_first"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/top.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/1.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/2.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/3.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/4.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/5.jpg" alt="画像"></div>
</div>
</div>
<div class="slide-item">
<div class="slider_text"><span>テキスト</span></div>
<div class="slider_img">
<div class="slider_inner"><a href=""><img src="img/big/6.jpg" alt="画像"></a></div>
</div>
</div>
</div>
<div id="thumbnail_slider">
<div class="thumbnail-item"><a href="#"><img src="img/small/1.png"></a></div>
<div class="thumbnail-item"><a href="#"><img src="img/small/2.png"></a></div>
<div class="thumbnail-item"><a href="#"><img src="img/small/3.png"></a></div>
<div class="thumbnail-item"><a href="#"><img src="img/small/4.png"></a></div>
<div class="thumbnail-item"><a href="#"><img src="img/small/5.png"></a></div>
<div class="thumbnail-item"><a href="#"><img src="img/small/6.png"></a></div>
</div>
</div>
(WordPressにslickを読み込む部分)
<link rel="stylesheet" type="text/css" href="/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="/slick/slick-theme.css"/>
<script type="text/javascript" src="/slick/slick.min.js"></script>
(CSS)
<style>#wrap{background-color: #fff;padding-bottom:1em;}
#main_slider{width: 100%;margin: 0 auto}
#thumbnail_slider{width: 100%;margin: 0 auto 10px;padding:2px;
background-color: #000;}
.slide-item img{margin-bottom:0;width: 100%;}
.thumbnail-item img{width: 98%;margin: 0 auto;background-color: #000;opacity: 0.5;}
#main_slider .slider_first{background: rgba(0,0,0,0.7);}
#main_slider .slider_text{font-size: 0.7em;position: absolute;bottom: 0;padding:2em;width:100%;z-index:101;}
#main_slider .slider_text span{color:#fff}
#main_slider .slider_img img{}
.slick-next{right:10px;}
.slick-prev{left:10px;z-index: 100;}
.thumbnail-item img:hover{opacity:1}
#entry-1,#entry-2{width:1.66%!important;height:12%;text-align:center;position:absolute;top:66%;font-size:1.5rem;padding:1rem;font-weight:bold;border-radius:0.5em;}
#entry-1{float:right;background-color:#229833;right:50.7%;}
#entry-2{float:right;background-color:#83d159;right: 47.7%;}
#entry-1 a,#entry-2 a{text-decoration:none}
#entry-1 span,#entry-2 span{color:#fff;}
@media (max-width:1024px) and (min-width:768px){#entry-1,#entry-2{font-size:1.1rem;padding:0.5rem;}}
@media (max-width:620px) and (min-width:468px){#entry-1,#entry-2{font-size:1.1rem;padding:0.5rem;}}
@media (max-width: 467px){.s-size-sp #entry-1,.s-size-sp #entry-2{width:90px;height:35px;font-size:0.8em;padding:0.6rem;top:60%;}
.s-size-sp #entry-1{right:50.7%;}
.s-size-sp #entry-2{right:47.7%;}}
</style>
<script>
$(function(){var mainSlider = "#main_slider";var thumbnailSlider = "#thumbnail_slider";
$(mainSlider).slick({arrows: true,asNavFor: thumbnailSlider});
$(thumbnailSlider).slick({slidesToShow: 5,speed: 1000,asNavFor: mainSlider});
$(thumbnailSlider+" .slick-slide").on('click',function(){var index = 
$(this).attr("data-slick-index");
$(thumbnailSlider).slick("slickGoTo",index,false);});});
</script>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • ishigooka0323

    2019/09/09 13:12

    スライダーが崩れている画像を追加しました。

    html側は提示したコードをh2下に追加したものです。

    --追加したhtml-----------------
    <h2>1つ目のスライダー</h2>
    <div id="wrap">~</div></div>

    <h2>2つ目のスライダー</h2>
    <div id="wrap">~</div></div>
    -------------------

    何か足りない情報がございましたら、お気軽にお問い合わせいただければ幸いです。

    キャンセル

  • m.ts10806

    2019/09/09 13:16

    > Wordpressを使っているため、使っていない場合と比べて、JQueryの書き方が違うと思いPHPと記載しました。

    意味が分からないですが、WordPressならWordPressだけでいいですし、
    jQueryはあくまでjQueryです。フロントエンドとバックエンドは同じ概念にできません。
    ※PHPメインでやっている人はWordPressをやっていないことも多いのでWordPress案件に「PHP」タグがついているのが迷惑だと感じる人も一定います。私もそのうちの1人です。WordPressだけでいいです。

    キャンセル

  • kei344

    2019/09/09 16:17

    WordPressにslickを読み込む部分も提示されたほうがよいです。デフォルトで入っているjQueryを消したりしていますよね。

    キャンセル

回答 1

+1

<div id="wrap">
<div id="main_slider">
...
<div id="thumbnail_slider">


この id をすべて class に変えて、CSSとJavaScriptを同様に併せればいいかと思います。

あるいは、

<div id="wrap1">
<div id="main_slider1">
...
<div id="thumbnail_slider1">
...
<div id="wrap2">
<div id="main_slider2">
...
<div id="thumbnail_slider2">


のように番号を振って、CSSとJavaScriptをコピペして番号だけ変えた同じものを2回繰り返せばいいかと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/09/11 09:08

    >CSSとJavaScriptをコピペして番号だけ変えた同じものを2回繰り返せばいいかと思います。
    上記ご回答頂きありがとうございます!こちらを採用し、スライダー作成をしてみたのですが、やり方が違うのかどうもうまく動作しません。(添付した写真と同じように画像が崩れる)

    変更箇所はhtml側の
    <div id="wrap">
    <div id="main_slider">
    <div id="thumbnail_slider">

    <div id="wrap1">
    <div id="main_slider1">
    <div id="thumbnail_slider1">

    そしてCSS側には以下#wrap1~#thumbnail_slider1を追加しました。
    #wrap{...}
    #main_slider{...}
    #thumbnail_slider{...}
    #wrap1{...}
    #main_slider1{...}
    #thumbnail_slider1{...}
    .slide-item img{...}
    .thumbnail-item img{
    ...

    なにか足りていない部分があるのか分からず大変恐縮ではございますが、お手すきの際に回答頂けますと幸いです。

    キャンセル

  • 2019/09/11 09:15

    JavaScript の方はどのように変更しましたか?

    キャンセル

  • 2019/09/13 07:25

    JavaScriptには変更をかけておりません。
    以下の部分を書き換えるということでしょうか?
    大変恐縮ではございますが、ご教授頂けますと幸いです。

    <link rel="stylesheet" type="text/css" href="/slick/slick.css"/>
    <link rel="stylesheet" type="text/css" href="/slick/slick-theme.css"/>
    <script type="text/javascript" src="/slick/slick.min.js"></script>

    キャンセル

  • 2019/09/18 10:28

    いいえ、そうではなく、
    $(function(){var mainSlider =
    以降の部分です。

    繰り返しになりますが、番号を振って、CSSとJavaScriptをコピペして番号だけ変えた同じものを2回繰り返せばいいかと思います。

    キャンセル

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

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

関連した質問

同じタグがついた質問を見る