slick.jsのスライダーを同一ページ内に複数設置した際に切り分けたい
- 評価
- クリップ 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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+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回繰り返せばいいかと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
m.ts10806
2019/09/06 17:10
コードはマークダウンのcode機能を利用してご提示ください。
「くずれている」のが分かる情報、例えば画面キャプチャなどご提示ください。
ブラウザデベロッパーツールのコンソールにエラーが出ていないかもご確認ください
また「PHP」はどのように関係するのでしょうか?質問内容からは分かりませんでした。
Lhankor_Mhy
2019/09/06 17:24
Markdownを利用しましょう
https://teratail.com/help/question-tips#questionTips3-7
結果(実際に起きたこと)を書きましょう
https://teratail.com/help/question-tips#questionTips3-4-1
エラーメッセージや実行ログをコピー&ペーストしましょう
https://teratail.com/help/question-tips#questionTips3-4-2
Lhankor_Mhy
2019/09/06 18:48
<style></style>
このタグの間にあるのは、JavaScriptとは別のものでCSSと呼びます。
HTML文書のデザインをする役目を果たします。
http://www.htmq.com/csskihon/001.shtml
kyoya0819
2019/09/07 08:41
改行入れてください。見にくい。間違えを発見しにくいです。
Lhankor_Mhy
2019/09/09 09:28
結果(実際に起きたこと)を書きましょう
https://teratail.com/help/question-tips#questionTips3-4-1
「表示が壊れてしまいます」とは、具体的にはどういう現象が起きましたか?
「被ってしまう状態」とは、具体的にはどういう表示ですか?
ご提示のコードを当方で試してみましたが、スライダーが重なって表示されているような現象は確認できませんでした。
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を消したりしていますよね。