以下を使用して、さまざまなモバイルデバイス、ビューポート、画面を検出します。私にとっては非常にうまく機能し、他の人に役立つかもしれません:
var pixelRatio = window.devicePixelRatio || 1;
var viewport = {
width: window.innerWidth,
height: window.innerHeight
};
var screen = {
width: window.screen.availWidth * pixelRatio,
height: window.screen.availHeight * pixelRatio
};
var iPhone = /iPhone/i.test(navigator.userAgent);
var iPhone4 = (iPhone && pixelRatio == 2);
var iPhone5 = /iPhone OS 5_0/i.test(navigator.userAgent);
var iPad = /iPad/i.test(navigator.userAgent);
var android = /android/i.test(navigator.userAgent);
var webos = /hpwos/i.test(navigator.userAgent);
var iOS = iPhone || iPad;
var mobile = iOS || android || webos;
window.devicePixelRatio
デバイスの物理ピクセルとデバイスに依存しないピクセル(ディップ)の比率です。
window.devicePixelRatio
=物理的なピクセル/ディップ。
詳細はこちら。