実現したいこと
全画面表示で縦スライダーをSwiperで表示しました。(フリックLP)
その下に2つセクションとフッターがあり、最後のスライドが終わったら下のセクションにスクロールするようにしたいです。
発生している問題・分からないこと
PCでは出来たのですがスマホ表示だと固定ヘッダーあたりでしかスクロールできず、スライドから抜け出せません。
これは実現可能なのでしょうか?
該当のソースコード
JavaScript
1/* 1. アドレスバー・ツールバーを除いた100vhの高さを取得 */ 2function setHeight() { 3 let vh = window.innerHeight * 0.01; 4 document.documentElement.style.setProperty("--vh", `${vh}px`); 5} 6setHeight(); 7window.addEventListener("resize", setHeight); 8/* スライダー */ 9var swiper = new Swiper(".mySwiper", { 10 direction: "vertical", 11 slidesPerView: 1, 12 mousewheel: true, 13 autoHeight: true, 14 spaceBetween: 0, 15 nested: true, 16 keyboard: { 17 enabled: true, 18 }, 19 effect: 'fade', 20 fadeEffect: { 21 crossFade: true, 22 }, 23 mousewheel: { 24 enabled: true, 25 releaseOnEdges: true, 26 touchReleaseOnEdges: true, 27 forceToAxis: true, 28 }, 29 pagination: { 30 el: ".swiper-pagination", 31 clickable: true, 32 }, 33 on: { 34 slideChange: function() { 35 // エッジ以外のときはmousewheelを有効 36 swiper.params.mousewheel.releaseOnEdges = true; 37 }, 38 reachEnd: function() { 39 // 最後のスライドに到達したら解除 40 setTimeout(function () { 41 swiper.params.mousewheel.releaseOnEdges = false; 42 }, 500); 43 }, 44 reachBeginning: function() { 45 // 最初のスライドに到達したら解除 46 setTimeout(function () { 47 swiper.params.mousewheel.releaseOnEdges = false; 48 }, 500); 49 } 50 } 51 52});
CSS
1/* swiper */ 2section.slider-part { 3 width: 100%; /* 横幅を画面いっぱいに広げる */ 4 height: 100vh; /* 縦幅を画面いっぱいに広げる */ 5 height: calc(var(--vh, 1vh) * 100); /* 縦幅を画面いっぱいに広げる(アドレスバー・ツールバーの高さを除く) */ 6} 7 8section.slider-part .mySwiper { 9 position: relative; 10 width: 100%; 11 height: 100%; 12 top: 0; 13} 14 15.swiper-slide { 16 height: 100%; 17 width: 100%; 18 display: flex; 19 justify-content: center; 20 align-items: center; 21 font-weight: bold; 22 -ms-touch-action: auto; 23 touch-action: auto; 24} 25 26.sec_fv, .sec_2, .sec_3, .sec_4, .sec_5, .sec_6, .sec_7 { 27 height: 100%; 28 width: 100%; 29 position: relative; 30 top: 0; 31}
HTML
1<section class="slider-part"> 2<div class="swiper-container mySwiper"> 3 <div class="swiper-wrapper"> 4 <div class="swiper-slide slide1"><div class="sec_1"></div></div> 5 <div class="swiper-slide slide2"><div class="sec_2"></div></div> 6 <div class="swiper-slide slide3"><div class="sec_3"></div></div> 7 <div class="swiper-slide slide4"><div class="sec_4"></div></div> 8 <div class="swiper-slide slide5"><div class="sec_5"></div></div> 9 </div> 10</div> 11</section> 12 13<div class="sec_6"></div> 14<div class="sec_7"></div> 15<footer></footer>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
最後のスライドからブラウザスクロールに移動する設定自体は出来てます(PCでは実現、スマホでは一部実現)
全画面スライドで、最後のスライドから下にスクロールって出来るものなのでしょうか?
補足
フリックLPの依頼でこちら対応できませんでした。
実現自体可能なのか知りたいです。
