タブメニューそれぞれにカルーセルアネルをslick.jsを使て実装したいです。 ### 発生している問題・エラーメッセージ <tab-content-item>にposition:absolute;をつけるとカルーセルパネルが動かなくなる。 HTML <div class="tabmenu"> <ul class="tab-btn"> <li class="tab-item"><span class="tab-link on" data-tab-content="1">料理</span></li> <li class="tab-item"><span class="tab-link" data-tab-content="2">外観</span></li> <li class="tab-item"><span class="tab-link" data-tab-content="3">内観</span></li> </ul> <!-- 料理の写真 --> <div class="tab-content"> <div class="tab-content-item tab-content-item--1 on"> <img src="./img/tinified/kichen-check-top.jpeg" alt="" class="content-img"> <img src="./img/tinified/kichen-check-dish.jpg" alt="" class="content-img"> </div> <!-- 外観の写真 --> <div class="tab-content-item tab-content-item--2"> <img src="./img/tinified/kichen-check-out2.jpg" alt="" class="content-img"> <img src="./img/tinified/kichen-check-out.jpg" alt="" class="content-img"> <img src="./img/tinified/kichen-check-out3.jpg" alt="" class="content-img"> </div> <!-- 内観の写真 --> <div class="tab-content-item tab-content-item--3"> <img src="" alt="" class="content-img"> <img src="" alt="" class="content-img"> <img src="" alt="" class="content-img"> </div> </div> </div> ```CSS .tabmenu{ padding: 0 0; margin: 0 auto; } .tab-btn { display: flex; text-align: center; margin: 0 auto !important; font-size: 13px; } .tab-item{ padding: 10px 30px ; width: 30%; border-left: 1px solid #803f3f; background-color: #F2DDBC; } .tab-item:nth-child(1){ border-left: none; } .tab-link { position: relative; display: block; color: #333; cursor: pointer; font-family: 'M PLUS Rounded 1c', sans-serif; } .tab-link::before { content: ''; position: absolute; bottom: 0; right: 50%; width: 0; height: 2px; background-color: #803f3f; transition: all 0.4s ease-out; } .tab-link::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background-color: #803f3f; transition: all 0.4s ease-out; } .tab-link.on::before { width: 50%; } .tab-link.on::after { width: 50%; } .tab-content { width: 80%; position: relative; margin: 15px auto 30px auto; } .tab-content-item { width: 100%; opacity: 0; transition: all 0.6s ease-out; display: block; margin: 0 auto; } .tab-content-item.on { opacity: 1; background: #803f3f; } .content-img{ margin: 0 auto; } コード
Js
const carousel = $('.tab-content-item')
carousel.slick({
dots: true,
arrows: true,
});
const carouselFirst = $('.tab-content-item--1');
const carouselHeight = carouselFirst.height();
const tabContent = $('.tab-content');
tabContent.css('height', carouselHeight);
試したこと
jsでhightを指定したことで高さは決められたはずであるが、現状カルーセルは縦に並ぶ。
どなたか、ご教授お願いします。
ご提示のコードを試してみましたが、「<tab-content-item>にposition:absolute;をつけるとカルーセルパネルが動かなくなる」という現象は起きませんでした。
つまり、問題が再現しませんでした。
おそらく、ご提示いただいていない部分のコードが原因だと思います。
かしこまりました!
こちらで該当箇所のコードを再度送り直しました!
tab-content--1のほうのカルーセルが動かないです。
3-7. markdownを利用しましょう
https://teratail.com/help/question-tips#questionTips3-7
ご追加のコードも併せて試してみましたが、tab-content--1のほうのカルーセルは動作しました。
つまり、問題が再現しませんでした。
おそらく、ご提示いただいていない部分のコードが原因だと思います。
回答1件
あなたの回答
tips
プレビュー