2016-05-26 9 views
0

できるだけ多くの情報をユーザーに表示するページを作成しています。モバイルデバイスの場合、物理的な解像度は、ブラウザで解釈される解像度と同じではありません。それ以外は、高解像度のデバイスではページがうまく表示されないからです。JavaScriptで正確な物理モバイル解像度を取得する

例えば、私のMoto Xスタイルは1440 x 2560ピクセルの解像度を持ち、ほとんどのPCモニターよりも高い解像度です。私のデバイスでは3.5に設定されているデバイスのピクセル比率で縮小されます。これにより、「解釈された解像度」412 x 732ピクセル

多くのデバイスでは、screen.[width/height]という解釈された解像度を掛けて、それにwindow.devicePixelRatioを掛ければ十分です。しかし私の場合、これは単なる見積もりであり、おそらく丸めのために1442 x 2562で出てきます。

この正確な値を取得する確実な方法はありますか?あるいは、これらの値の丸めを抑制する可能性がありますか?どのような考えが評価されます。

答えて

1

あなたは、このページをチェックし、現在のデバイスの正確な高さ幅

var w = window.innerWidth; 
var h = window.innerHeight; 
+0

これらの値は、画面サイズと同じではなく、ウィンドウサイズです。あなたが実際に私の質問を読んでいれば、私はすでに画面の大きさを見つけていることに気がつきました。 –

0

私はこれらを使ってブラウザのウィンドウの幅/高さを取得します。

getWindowWidth: function() { 
    if (true) { 
     try { 
      return document.documentElement.clientWidth; 
     } 
     catch (error) {} 
    } 
    else { 
     try { 
      return window.innerWidth; 
     } 
     catch (error) {} 
    } 
    return 0; 
}, 

getWindowHeight: function() { 
    if (true) { 
     try { 
      return document.documentElement.clientHeight; 
     } 
     catch (error) {} 
    } 
    else { 
     try { 
      return window.innerHeight; 
     } 
     catch (error) {} 
    } 
    return 0; 
}, 
+0

また、これは本当に私を助けません。この場合、screen.width/heightは、ウィンドウ/ドキュメントの寸法ではなく実際の画面であるため、使用することが不可欠であると思います。 –

+0

これらの 'user_agent:navigator.userAgent.toLowerCase()'と 'user_platform:\t navigator.platform.toLowerCase()'を取得し、それらを既知のデバイスのリストと比較することができます。 PHPやその他を使っているなら、 '$ SERVER [" HTTP_USER_AGENT "]'を取得し、これをリストと比較することができます。 – PHPDev

+0

ここには、ユーザーエージェントの長いリストへのリンクhttp://www.useragentstring.com/pages/Mobile%20Browserlist/があります。 – PHPDev

関連する問題