Есть ли способ, который работает для всех браузеров?
197
Есть ли способ, который работает для всех браузеров?
оригинальный ответ
Да.
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()
вместо этого использовал jQuery , см. ответwindow.devicePixelRatio
. См. Мой комментарий к ответу Алессандроса.источник
window.screen
. Нужно просто добавить его к существующему ответу.screen.availHeight
просто дает доступную высоту в окне браузера, аscreen.height
дает точную высоту экрана.window.screen.width * window.devicePixelRatio
иwindow.screen.height * window.devicePixelRatio
. Это также будет работать на настольных компьютерах, которые будут иметь соотношение 1.В ванильном JavaScript это даст вам ДОСТУПНУЮ ширину / высоту:
Для абсолютной ширины / высоты используйте:
Оба вышеперечисленных могут быть написаны без префикса окна.
Нравится jQuery? Это работает во всех браузерах, но каждый браузер дает разные значения.
источник
Вы также можете получить ширину и высоту окна, избегая панелей инструментов браузера и ... (не только размер экрана).
Для этого используйте:
window.innerWidth
иwindow.innerHeight
свойства. Смотрите это в w3schools .В большинстве случаев это будет лучший способ, например, отображать идеально центрированный плавающий модальный диалог. Это позволяет вам рассчитывать позиции в окне, независимо от того, какую ориентацию разрешения или размер окна использует браузер.
источник
Вы имеете в виду разрешение экрана (например, 72 точки на дюйм) или размеры в пикселях (в настоящее время окно браузера составляет 1000 x 800 пикселей)?
Разрешение экрана позволяет узнать, насколько толстой будет линия в 10 пикселей в дюймах. Размеры в пикселях показывают, какой процент доступной высоты экрана будет занимать горизонтальная линия шириной 10 пикселей.
Нет никакого способа узнать разрешение экрана только из Javascript, поскольку сам компьютер обычно не знает фактические размеры экрана, только количество пикселей. 72 точек на дюйм это обычное предположение ....
Обратите внимание, что существует большая путаница с разрешением экрана, часто люди используют термин вместо разрешения в пикселях, но они совершенно разные. Смотрите Википедию
Конечно, вы также можете измерить разрешение в точках на см. Есть также непонятный предмет неквадратных точек. Но я отвлекся.
источник
Используя jQuery вы можете сделать:
источник
Попытка получить это на мобильном устройстве требует еще нескольких шагов.
screen.availWidth
остается неизменным независимо от ориентации устройства.Вот мое решение для мобильных устройств:
источник
window.orientation
возвращает неопределенное ... (Firefox 49)screen.orientation.angle
возвращает угол, но для ландшафтного режима он уже равен 0.См. Получение разрешения экрана монитора с помощью Javascript и
window.screen
объекта.источник
источник
только для дальнейшего использования:
источник
Если вы хотите определить разрешение экрана, вы можете проверить плагин Res . Это позволяет вам делать следующее:
Вот несколько замечательных решений от Райана Ван Эттена, автора плагина:
Вот исходный код для res на сегодняшний день:
источник