すべてのブラウザで機能する方法はありますか?
元の答え
はい。
window.screen.availHeight
window.screen.availWidth
更新2017-11-10
コメント中 Tsunamis より:
モバイルデバイスなどのネイティブ解像度を取得するには、デバイスのピクセル比(
window.screen.width * window.devicePixelRatio
およびwindow.screen.height * window.devicePixelRatio
)を乗算する必要があります。これはデスクトップでも動作します。デスクトップの比率は1になります。
そして Ben から、別の答えでは:
Vanilla JavaScriptでは、これはあなたに利用可能な幅/高さを与えるでしょう:
window.screen.availHeight window.screen.availWidth
絶対幅/高さには、次のようにします。
window.screen.height window.screen.width
var width = screen.width;
var height = screen.height;
Vanilla JavaScriptでは、これによりAVAILABLE幅/高さが得られます。
window.screen.availHeight
window.screen.availWidth
絶対幅/高さには、次のようにします。
window.screen.height
window.screen.width
上記の両方ともウィンドウの接頭辞なしで書くことができます。
JQueryが好きですか?これはすべてのブラウザで機能しますが、ブラウザごとに値が異なります。
$(window).width()
$(window).height()
あなたは、ディスプレイの解像度(例えば、72ドット/インチ)またはピクセル寸法(ブラウザウィンドウは現在1000 x 800ピクセルです)を意味しますか?
画面の解像度によって、10ピクセル行のインチ単位の太さを知ることができます。ピクセルサイズは、利用可能な画面の高さの何パーセントが10ピクセル幅の水平線で占められるかを示します。
Javascriptだけでディスプレイの解像度を知る方法はありません。コンピュータ自体は通常、画面の実際のサイズ、ピクセル数だけを知らないからです。 72 dpiは通常の推測です....
ディスプレイの解像度については多くの混乱があり、多くの場合、ピクセル解像度の代わりにこの用語を使用しますが、この2つはまったく異なります。 Wikipedia を参照してください
もちろん、cmあたりのドット数で解像度を測定することもできます。非正方形ドットの不明瞭な問題もあります。しかし、私は話します。
JQueryを使うと、次のことができます。
$(window).width()
$(window).height()
ブラウザのツールバーを避けて、ウィンドウの幅と高さを取得することもできます(画面サイズだけではありません)。
これを行うには、window.innerWidth
およびwindow.innerHeight
プロパティを使用します。 w3schoolsで参照 。
ほとんどの場合、たとえば、完全に中央揃えのフローティングモーダルダイアログを表示するのが最善の方法です。どの解像度の向きやウィンドウサイズがブラウザを使用していても、ウィンドウ上の位置を計算できます。
モバイルデバイスでこれを取得しようとすると、さらにいくつかの手順が必要になります。 screen.availWidth
は、デバイスの向きに関係なく同じままです。
これが私のモバイルソリューションです。
function getOrientation(){
return Math.abs(window.orientation) - 90 == 0 ? "landscape" : "portrait";
};
function getMobileWidth(){
return getOrientation() == "landscape" ? screen.availHeight : screen.availWidth;
};
function getMobileHeight(){
return getOrientation() == "landscape" ? screen.availWidth : screen.availHeight;
};
Javascriptを使用してモニター画面の解像度を取得する および window.screen
オブジェクト を参照してください。
function getScreenWidth()
{
var de = document.body.parentNode;
var db = document.body;
if(window.opera)return db.clientWidth;
if (document.compatMode=='CSS1Compat') return de.clientWidth;
else return db.clientWidth;
}
将来の参考のために:
function getscreenresolution()
{
window.alert("Your screen resolution is: " + screen.height + 'x' + screen.width);
}
画面の解像度を検出したい場合は、プラグイン res をチェックアウトすることをお勧めします。それはあなたが以下をすることを可能にします:
var res = require('res')
res.dppx() // 1
res.dpi() // 96
res.dpcm() // 37.79527559055118
これが、プラグインの作者であるRyan Van Ettenによるすばらしい 解決策 です。
これが今日のresのソースコードです。
!function(root, name, make) {
if (typeof module != 'undefined' && module.exports) module.exports = make()
else root[name] = make()
}(this, 'res', function() {
var one = {dpi: 96, dpcm: 96 / 2.54}
function ie() {
return Math.sqrt(screen.deviceXDPI * screen.deviceYDPI) / one.dpi
}
function dppx() {
// devicePixelRatio: Webkit (Chrome/Android/Safari), Opera (Presto 2.8+), FF 18+
return typeof window == 'undefined' ? 0 : +window.devicePixelRatio || ie() || 0
}
function dpcm() {
return dppx() * one.dpcm
}
function dpi() {
return dppx() * one.dpi
}
return {'dppx': dppx, 'dpi': dpi, 'dpcm': dpcm}
});