前提・実現したいこと
スマホサイズにおいてswiperを用いて複数のスライダーを設置し、かつpcサイズでは横並びの通常表示としたい。
発生している問題・エラーメッセージ
jQueryを用いてsliderの機能停止と設定されたcssのリセット機能を付与してみましたが、スマホ→pcサイズにサイズ変更したときに、2つ目以降のスライダーにおいてcssのリセットが行われません。
該当のソースコード
javascript
1 var destroyed = true; 2 $(window).on('load resize', function () { 3 $('.swiper-container').each(function () { 4 if (destroyed == false) { //Swiperが存在しているときだけ削除処理を行う 5 this.swiper.destroy(); 6 destroyed = true; 7 } 8 }); 9 var w = $(window).width(); 10 makeSwiper(w); 11 }); 12 13 $(function () { 14 var w = $(window).width(); 15 makeSwiper(w); 16 }); 17 18 function makeSwiper(w) { 19 //画面サイズによる切り分け 20 if (w > 780) { 21 //画面幅780~ swiperが付けたstyleを削除する 22 $('.swiper-wrapper').removeAttr('style'); 23 $('.swiper-slide').removeAttr('style'); 24 } else { 25 //swiperを新たに作成 26 ///slider1 27 var mySwiper = new Swiper('.slider1', { 28 // ここからオプション 29 loop: false, 30 effect: "slide", 31 slidesPerView: 1.7, 32 spaceBetween: 20, 33 centeredSlides: true, 34 pagination: { 35 el: '.swiper-pagination1', 36 clickable: true 37 }, 38 }); 39 40 ///slider2 41 var mySwiper = new Swiper('.slider2', { 42 // ここからオプション 43 loop: false, 44 effect: "slide", 45 slidesPerView: 1.8, //一度に表示するslideの数 46 spaceBetween: 30, //slideの間隔 47 centeredSlides: true, //slideを中央に表示 48 pagination: { 49 el: '.swiper-pagination2', 50 clickable: true 51 }, 52 }); 53 54 ///slider3 55 var mySwiper = new Swiper('.slider3', { 56 // ここからオプション 57 loop: false, 58 effect: "slide", 59 slidesPerView: 1.8, 60 spaceBetween: 30, 61 centeredSlides: true, 62 pagination: { 63 el: '.swiper-pagination3', 64 clickable: true 65 }, 66 }); 67 68 69 }); 70 destroyed = false; 71 72 } 73 }
試したこと
swiperの関数destroy()を用いてcssリセットを試みましたが、うまく行かないためjQueryを用いて試してみたところ、1つ目のスライダーは機能するようになりましたが、2つ目以降のcssリセットがうまくいきません。
模写コーディングにて学習中です。
有効な他の方法等ありましたら教えていただければ嬉しいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/12 05:05