前提・実現したいこと
以下のサイトのTOP画像のように一定の時間と画面幅で画像が変わるようにしたい。
https://www.rakuten.ne.jp/gold/ight-tokyo/
発生している問題
画面幅によって画像が変わらない
該当のソースコード
html
1 2 <div class="top_img" id="top_img"> 3 <picture class="bg "> 4 <source media="(max-width: 1024px)" srcset="image/slider03.png"> 5 <source media="(max-width: 580px)" srcset="img/kv_sp_1.jpg"> 6 <img src="image/slider03.png"> 7 </picture> 8 <picture class="bg bg_dn "> 9 <source media="(max-width: 1024px)" srcset="image/download-1.jpg "> 10 <source media="(max-width: 580px)" srcset="img/kv_sp_2.jpg"> 11 <img src="image/download-1.jpg "> 12 </picture> 13 <picture class="bg bg_dn "> 14 <source media="(max-width: 1024px)" srcset="image/download.jpg "> 15 <source media="(max-width: 580px)" srcset="img/kv_sp_3.jpg"> 16 <img src="image/download.jpg "> 17 </picture> 18 19 20 </div> 21```css 22
.top_img {
width: 80%;
display: block;
margin: 0 auto;
padding-top: 80px;
}
.top_img img { width: 100%; background-size: cover; } .bg_dn { display: none; }
JS
1
function slideshow() {
if (count % 2 == 0 && count % 3 == 2) {
$(".bg").eq(0).addClass("bg_dn");
$(".bg").eq(1).removeClass("bg_dn");
} else if (count % 2 == 0 && count % 3 == 1) { $(".bg").eq(1).addClass("bg_dn"); $(".bg").eq(2).removeClass("bg_dn"); } else if (count % 2 == 0 && count % 3 == 0) { $(".bg").eq(2).addClass("bg_dn"); $(".bg").eq(0).removeClass("bg_dn"); } console.log(count); count++;
}
setInterval(slideshow, 2000);
### 試したこと SourceをDivでかこってClassを付け替えた→失敗 ### 補足情報(FW/ツールのバージョンなど) Pictureではなくimgタグを使いCSSでレスポンスした際は出来ました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/19 02:56
2019/10/19 09:14
2019/10/19 09:19
2019/10/19 10:35