2017年2月4日
【JS】jQueryでブラウザの画面サイズで処理を判定する方法
レスポンシブサイト等で、スマホのときには特定の処理をして、PCの場合は処理をしたくない場合がありますよね。
例えば、スマホではアコーディオンでクリックしたら詳細を表示するけど、PCの場合はアコーディオンを使用せず、詳細を常に表示状態にするなど・・・。
そんなときのための、ブラウザの画面サイズによって、処理をする方法をメモメモ。
▼読み込み時とリサイズ時の画面サイズによって処理を判定する
$(window).on('load resize', function(){ var w = $(window).width(); var x = 768; if (w < x) { //画面サイズが768px未満のときの処理 } else { //それ以外のときの処理 } });
▼リサイズ操作が終わった時だけ処理を実行する
var timer = false; $(window).resize(function() { if (timer !== false) { clearTimeout(timer); } timer = setTimeout(function() { console.log('resized'); // 何らかの処理 }, 200); });
▼【サンプル】スマホ(ブラウザサイズが767以下)の場合はアコーディオン、PC(ブラウザサイズが768以上)の場合はアコーディオンを表示しない。
■html
<div class="accordion"> <div class="accordionTrg">詳細を見る</div> <div class="accordionDetail"> <!--アコーディオンの詳細--> </div> </div> </div>
■javascript
//読み込み時 $(function(){ $(".accordion .accordionTrg").click (function() { $(this).toggleClass("active").next().slideToggle(); }); }); //ブラウザ幅変更時の処理 $(window).on('load resize', function(){ $(function(){ if($(window).width()<=767){ $(".accordion .accordionTrg").show(); } else { $(".accordion .accordionTrg").hide(); $(".accordion .accordionDetail").after().show(); } }); });
関連記事
-
【JS】ブラウザの高さを自動で取得しCSSに設定する方法
【JS】ブラウザの高さを自動で取得しCSSに設定する方法
フル画面やファーストビューでブラウザの高さいっぱいにビジュアルを表示したい場合、幅は「width:100%;」で設定でき・・・ -
【JS】要素のidやclassに特定の値が設定されていたら、処理を行う
【JS】要素のidやclassに特定の値が設定されていたら、処理を行う
jQueryを使用して要素のidやclassに特定の値が設定されていた場合、bodyにclassの値を付与するなど、何か・・・ -
【JS】parent?parents?closest?jQueryで親要素があるか判別する方法
【JS】parent?parents?closest?jQueryで親要素があるか判別する方法
jQueryで特定の親要素があるかないかを判別して特定の処理を行いたい場合の方法をメモメモ。 ▼closestを使用して・・・ -
【JS】子要素に特定のクラスがあった場合に親要素にクラスを追加する等、jQueryでよく使うメソッド
【JS】子要素に特定のクラスがあった場合に親要素にクラスを追加する等、jQueryでよく使うメソッド
クリック時にクラスを追加するなど、よく使用するjQueryのメソッドをメモメモ。 ▼CSSの操作 [js] $(func・・・ -
【JS】jQueryで特定の要素(セレクタ)を対象外にする方法
【JS】jQueryで特定の要素(セレクタ)を対象外にする方法
jQueryで動作を設定しているけど、特定の要素のみ動作を行いたくない場合があるかと思います。 例えば、「#」のリンクを・・・