【実現したいこと】
AirbnbのWebサイトの模写を行っています。
あるリンクをクリックしたときの動作として、以下2通りの動作を実現したいと考えています。
①ウィンドウサイズ747px以下のとき: リンクをクリックすると、説明文がスライドアップして表示される。
②ウィンドウサイズ747pxより大きいとき: リンクをクリックすると、説明文がモーダルウィンドウで表示される。
【現状とエラー内容】
スライドアップはjQuery使用、モーダルウィンドウはBootstrap使用すれば可能と考え、実装しました。しかし、上記①の場合に、スライドアップが動作せず、どの場合もモーダルウィンドウが動作してしまいます。
画面サイズによって、JavaScriptの処理が分岐できるようにしたいです。(モーダルウィンドウが動作する場合と、スライドアップが動作する場合)
そもそも、レスポンシブ対応のためには別の書き方にすべき場合は、その点もご教示いただけますと幸いです。
【考えられる原因】
デバッグで原因究明中です。
Javascriptで、ウィンドウサイズが変わったときの動作を記述しており、
その箇所が上手く動作していないのではと今のところは推測しています。
【画面側】
html
1<div class="slide-open-button"> 2 <!-- クリックするリンク start --> 3 <div class="s-o-b">Airbnbホストになれるのはどんな人?</div> 4 <!-- クリックするリンク end --> 5 <!-- slideinする説明文 start --> 6 <div class="slidein"> 7 <div class="close-button"><i class="fas fa-times"></i></div> 8 <h2 class="text-b">Airbnbホストになれるのはどんな人?</h2> 9 <p class="text-a">一部の地域を除き、Airbnbでホスティングを始めるのはとても簡単です。リスティングの作成および掲載もすべて無料。 マンションやアパート、一軒家のまるまる貸切から個室、ツリーハウス、お城などはAirbnbで掲載している宿泊先タイプのほんの一例でしかありません。</p> 10 <p class="text-a">ホストに求められる詳しい条件は、安全、セキュリティ、信頼性に関するAirbnbコミュニティの基準、高評価レビュー獲得のポイントをまとめたホスピタリティの基準をチェックしてみましょう。</p> 11 </div> 12 <!-- slideinする説明文 end --> 13 14 <!-- モーダルウィンドウ start--> 15 <div class="modal fade" id="modal1" tabindex="-1" role="dialog" aria-labelledby="label1" aria-hidden="true"> 16 <div class="modal-dialog" role="document"> 17 <div class="modal-content"> 18 <div class="modal-header"> 19 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 20 <span aria-hidden="true">×</span> 21 </button> 22 </div> 23 <div class="modal-body"> 24 Modal body 25 </div> 26 </div> 27 </div> 28 </div> 29 <!-- モーダルウィンドウ end--> 30 31
javascript
1$(window).on('load resize', function() { 2 var winW = $(window).width(); 3 var devW = 747; 4 5 if (winW <= devW) { 6 // 画面サイズがタブレットサイズ以下の時 7 $(document).on('click', '.s-o-b', function(){ 8 $(this).next('div').slideDown(); 9 }); 10 11 $(document).on('click', '.close-button', function(){ 12 $(this).parent('.slidein').slideUp(); 13 }); 14 } else { 15 // 画面サイズがタブレットサイズより大きい時 16 // s-o-bクラス(クリックするリンク)に、「data-toggle="modal" data-target="#modal1"」の属性を追加し、 17 // クリックするとモーダルウィンドウが動作するようにする 18 $('.s-o-b').attr({ 19 'data-toggle' : 'modal', 20 'data-target' : '#modal1' 21 }); 22 } 23}); 24
模写対象サイト:
https://www.airbnb.jp/host/homes?_set_bev_on_new_domain=1579409586_NDhhOTlmMzQ2MWU5
【バージョン】
jQuery 3.5.0
不足情報等ございましたらお手数をおかけしますが、ご教示いただけますと幸いです。
何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/08 13:52