фонПолучение достоверной доступной ширины и высоты с помощью Javascript
У меня возникли проблемы с получением надежного размера окна просмотра с помощью JavaScript. Я прочитал this guide, чтобы настроить приложение и this guide, чтобы узнать о таргетинге на определенные разрешения устройства.
Это <meta>
тега на странице:
<!DOCTYPE html>
...
<meta name="viewport" content="target-densitydpi=device-dpi" />
Это позволяет мне использовать чёткое изображение, чтобы сделать интерфейс. Чтобы проверить разрешение я написал этот кусок кода:
window.addEventListener('orientationchange', function() {
console.log(screen.availWidth + ' x ' + screen.availHeight)
}
// 1080 x 1920 or 1920 x 1080
Проблема 1
Я надеялся, что фактические доступные пиксели могут быть рассчитаны как:
width := screen.availWidth/devicePixelRatio
height := screen.availHeight/devicePixelRatio
Но devicePixelRatio
фиксируется на 3
, независимо от целевого значения dpi; так как я могу определить фактические пиксели в моем распоряжении?
Задача 2
выше screen.availHeight
не является точным, поскольку он не учитывает фактическую высоту WebView
компонента.
Я пробовал эти альтернативы:
console.log(document.documentElement.offsetHeight);
// 1920
console.log(window.innerHeight);
// 240
Эти значения в значительной степени бесполезны, и что еще хуже, они не меняются, когда экран вращается и они не зависят от целевой точек на дюйм. Есть лучший способ сделать это?
Возможно, значения из jQuery width() и height() вернут правильные значения для вас? http://responsejs.com/labs/dimensions/ –
Hye jack, пожалуйста, дайте мне знать, как вы получили размер, который, наконец, работает для вас. Я также сталкиваюсь с той же проблемой. – virus