모든 브라우저에서 작동하는 방법이 있습니까?
모든 브라우저에서 작동하는 방법이 있습니까?
답변:
원래 답변
예.
window.screen.availHeight
window.screen.availWidth
최신 정보2017-11-10
에서 쓰나미 코멘트에 :
모바일 장치, 즉 모바일 장치의 기본 해상도를 얻으려면 장치 픽셀 비율을 곱해야합니다 :
window.screen.width * window.devicePixelRatio
및window.screen.height * window.devicePixelRatio
. 이것은 또한 비율이 1 인 데스크톱에서도 작동합니다.
그리고 또 다른 대답으로 벤 으로부터 :
바닐라 JavaScript에서는 너비 / 높이를 사용할 수 있습니다.
window.screen.availHeight window.screen.availWidth
절대 너비 / 높이에는 다음을 사용하십시오.
window.screen.height window.screen.width
$(window).width()
대신 사용 하겠습니다. chaim.dev의 답변을 참조하십시오
window.devicePixelRatio
합니다. Alessandros 답변에 대한 내 의견을 참조하십시오.
var width = screen.width;
var height = screen.height;
window.screen
합니다. 기존 답변에 추가해야합니다.
screen.availHeight
브라우저 창에서 사용 가능한 높이를 screen.height
제공하고 화면의 정확한 높이 를 제공합니다.
window.screen.width * window.devicePixelRatio
및 window.screen.height * window.devicePixelRatio
. 이것은 또한 1의 비율을 갖는 데스크탑에서 작동합니다.
디스플레이 해상도 (예 : 인치당 72 도트) 또는 픽셀 크기 (브라우저 창이 현재 1000 x 800 픽셀 임)를 의미합니까?
화면 해상도를 통해 10 픽셀 선의 두께를 인치 단위로 알 수 있습니다. 픽셀 크기는 사용 가능한 화면 높이의 몇 퍼센트가 가로 10 픽셀 너비로 차지하는지 알려줍니다.
컴퓨터 자체는 일반적으로 화면의 실제 크기, 픽셀 수만 알지 못하므로 Javascript로만 디스플레이 해상도를 알 수있는 방법이 없습니다. 72 dpi는 일반적인 추측입니다 ....
디스플레이 해상도에 대해 많은 혼동이 있습니다. 사람들은 종종 픽셀 해상도 대신이 용어를 사용하지만 둘은 상당히 다릅니다. 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;
};
window.orientation
undefined ... (Firefox 49) screen.orientation.angle
는 각도를 반환하지만 가로 모드에서는 이미 0입니다.
화면 해상도를 감지하려면 플러그인 해상도 를 확인하십시오 . 다음을 수행 할 수 있습니다.
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}
});