はじめに
レスポンシブ対応時に、JQuery、Javascriptでは、ひと昔は、ユーザーエージェントで判断していたが、デバック検証でエージェントなど
わざわざ変更するのが面倒なので、jQuery、Javascriptでメディアクエリの指定のサイズで書くことで、ブラウザー幅を変更するだけで検証できるようにする。
コード
昔は下記
var ua = navigator.userAgent;
if((ua.indexOf('iPhone') > 0) || ua.indexOf('iPod') > 0 || (ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0)){
//スマフォ
} else {
//pc
}
メディアクエリのサイズで連動させる
jQuery時
ブラウザーサイズ変更時、リアルタイムにしたい場合、resizeイベントを利用
利用しない場合、ブラウザーサイズ変更後手動でリロードする。
//jQueryあり
if($(window).width() < 768) {
//スマフォ
} else {
//pc
}
Javascriptのみの時
ブラウザーサイズ変更時、リアルタイムにしたい場合、resizeイベントを利用
利用しない場合、ブラウザーサイズ変更後手動でリロードする。
//jQueryなし
if(window.innerWidth < 768) {
//スマフォ
} else {
//pc
}
matchMediaを使う(IE10から、その他ブラウザーバージョンを確認することアンドロイドとかね)
ブラウザーサイズ変更時、リアルタイムにしたい場合、resizeイベントを利用
利用しない場合、ブラウザーサイズ変更後手動でリロードする。
if(window.matchMedia("(max-width:768px)").matches){
//スマフォ
} else {
//pc
}
オンロードとリサイズを考慮する場合
//ウインドウ読込時とリサイズ時は、こんな感じで
$(window).on('load resize',function() {
//ここにリサイズのコードを書く!
});
デメリット
メディアクエリのサイズ変更は、Javascriptも変更を忘れないでね。
PHPとかシステム連動することきは、やっぱり、ユーザーエージェント変更する・・・?
最後に
個人的なメモです。
忘れん坊です。汗