サイトのメインビジュアル部分をコーディングしています。
スライドショーかつフルスクリーン表示させたいです。
また、スライドショー・フルスクリーン表示はそのままで、768px以下からリサイズした別の画像に切り替えて表示させたいです。
(人物写真を使用しており、リサイズ画像なしだとタブレットサイズ以下から人が画面外に追いやられてしまいます…。)
スライドショーはライブラリを使用しています。
(jQueryに関しては自分で書き換えたりしたことがないため、知識はほぼゼロです。)
sanitize.cssを使用しています。
試したこと1
「swiper.js(紹介記事)」というjquery不要のライブラリを使用し、HTML側に<img>タグで画像を配置。<picture>タグを使用して画像を切り替える方法。
しかしフルスクリーンで画像を表示させることができなかった。
<img>に100vh指定してみたが画像が歪んでしまう。
HTML
1<div class="mainvisual"> 2 <!-- Slider main container --> 3 <div class="swiper-container"> 4 <!-- Additional required wrapper --> 5 <div class="swiper-wrapper"> 6 <!-- Slides1枚目 --> 7 <div class="swiper-slide"> 8 <picture> 9 <source media="(min-width: 769px)" srcset="images/topimg01-pc.jpg"> 10 <img src="images/topimg01-sp.jpg" alt=""> 11 </picture> 12 </div> 13 <!-- Slides2枚目 --> 14 <div class="swiper-slide"> 15 <picture> 16 <source media="(min-width: 769px)" srcset="images/topimg02-pc.jpg"> 17 <img src="images/topimg02-sp.jpg" alt=""> 18 </picture> 19 </div> 20 <!-- Slides3枚目 --> 21 <div class="swiper-slide"> 22 <picture> 23 <source media="(min-width: 769px)" srcset="images/topimg03-pc.jpg"> 24 <img src="images/topimg03-sp.jpg" alt=""> 25 </picture> 26 </div> 27 <!-- Slides4枚目 --> 28 <div class="swiper-slide"> 29 <picture> 30 <source media="(min-width: 769px)" srcset="images/topimg04-pc.jpg"> 31 <img src="images/topimg04-sp.jpg" alt=""> 32 </picture> 33 </div> 34 </div> 35 </div> 36</div><!-- /.mainvisual -->
CSS
1img { 2 max-width:100%; 3 height:auto; 4} 5.mainvisual{ 6 height: 100vh; 7}
JavaScript
1$(function() { 2 var mySwiper = new Swiper ('.swiper-container', { 3 effect: "fade", 4 loop: true, 5 autoplay: { 6 delay: 3000, 7 disableOnInteraction: false 8 }, 9 speed: 1500, 10 simulateTouch: false, 11 }) 12});
試したこと2
「backstretch.js(紹介記事)」というjQueryライブラリを使用し、jQueryに画像パスを記述。
CSSにてvh単位を使用しフルスクリーン表示。
だが、タブレットサイズ以下からの画像の切り替えをどうやるのかわからない。(if文とかいうのをどうにかこうにか記述すればいける…?)
HTML
1<div class="mainvisual"></div>
CSS
1.mainvisual{ 2 height: 100vh; 3}
JavaScript
1$(window).load(function(){ 2 $(".mainvisual").backstretch([ 3 "images/topimg01-pc.jpg", "images/topimg02-pc.jpg", "images/topimg03-pc.jpg", "images/topimg04-pc.jpg" 4 ], {duration: 2500, fade: 2000}); 5});
不足している情報があれば追記します。また、上記2つ以外にも方法があればご教授ください。
回答、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー