0

0

JS如何获取屏幕尺寸

星降

星降

发布时间:2025-08-12 13:00:03

|

341人浏览过

|

来源于php中文网

原创

screen.width和screen.height获取屏幕物理分辨率,受系统缩放影响;2. window.innerwidth和window.innerheight获取浏览器内容区尺寸,随窗口缩放变化;3. 移动端应结合window.devicepixelratio计算物理像素尺寸;4. 显示缩放、浏览器缩放、多显示器和虚拟化环境可能导致获取值与实际不符,需根据场景选择合适属性并综合判断以准确获取屏幕尺寸。

JS如何获取屏幕尺寸

获取JS中的屏幕尺寸,简单来说,就是利用

window
对象的一些属性。但具体怎么用,以及不同场景下的选择,还是有点讲究的。

解决方案:

使用

window.screen
window.innerWidth
window.innerHeight
等属性来获取屏幕尺寸。
window.screen
提供的是屏幕的物理尺寸,而
window.innerWidth
window.innerHeight
提供的是浏览器窗口的尺寸(不包括工具栏和滚动条)。

如何区分screen.width/height 和 window.innerWidth/innerHeight?

这是个很常见的问题。

screen.width
screen.height
代表的是用户屏幕的实际分辨率,比如说你的显示器是1920x1080,那这两个值基本上就是这个数。但要注意,如果用户设置了缩放(比如Windows系统里的显示缩放),这个值可能不会完全等于硬件分辨率。

window.innerWidth
window.innerHeight
,则是浏览器窗口内部的尺寸。如果你把浏览器窗口缩小,这两个值也会相应变小。它们不包括浏览器的边框、工具栏、滚动条等。所以,如果你想知道网页实际可以利用的显示区域大小,用这两个属性更准确。

举个例子:

console.log("屏幕宽度 (screen.width):", window.screen.width);
console.log("屏幕高度 (screen.height):", window.screen.height);
console.log("窗口内部宽度 (window.innerWidth):", window.innerWidth);
console.log("窗口内部高度 (window.innerHeight):", window.innerHeight);

移动端设备上,如何更精确地获取屏幕尺寸?

移动端的情况稍微复杂一些。因为涉及到viewport的概念,以及不同设备的像素密度(devicePixelRatio)。

多个微信小程序源码合集
多个微信小程序源码合集

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,旨在提供便捷的用户体验,无需下载安装即可在微信内使用。本压缩包包含了丰富的源码资源,涵盖了多个领域的应用场景,下面将逐一介绍其中涉及的知识点。1. 图片展示:这部分源码可能涉及了微信小程序中的``组件的使用,用于显示图片,以及`wx.getSystemInfo`接口获取屏幕尺寸,实现图片的适配和响应式布局。可能还包括了图片懒加

下载

单纯使用

screen.width
screen.height
,可能得到的是“设备独立像素”(device-independent pixels, DIPs),而不是实际的物理像素。为了获取更精确的物理像素尺寸,可以结合
window.devicePixelRatio
来计算。

例如:

const screenWidth = window.screen.width * window.devicePixelRatio;
const screenHeight = window.screen.height * window.devicePixelRatio;

console.log("物理屏幕宽度:", screenWidth);
console.log("物理屏幕高度:", screenHeight);

window.devicePixelRatio
表示物理像素和设备独立像素的比率。例如,如果
devicePixelRatio
是2,那么表示1个DIP对应2个物理像素。

另外,移动端还有个

window.outerWidth
window.outerHeight
,这两个属性会包含浏览器的边框和工具栏。但一般情况下,我们更关心的是网页内容区域的尺寸,所以
innerWidth
innerHeight
更常用。

为什么获取到的屏幕尺寸与实际不符?

有时候你会发现,通过JS获取到的屏幕尺寸和实际的屏幕分辨率不一致。这可能有几个原因:

  1. 显示缩放: 操作系统层面设置了显示缩放。比如Windows系统里,你可以设置125%的缩放比例,这会导致
    screen.width
    screen.height
    返回的值小于实际分辨率。
  2. 浏览器缩放: 用户可能在浏览器里进行了缩放操作(Ctrl + +/-)。这会影响
    window.innerWidth
    window.innerHeight
    的值。
  3. 多显示器: 如果你的电脑连接了多个显示器,
    screen.width
    screen.height
    可能会返回主显示器的尺寸,或者所有显示器合并后的尺寸。具体行为取决于操作系统和浏览器的实现。
  4. 虚拟化环境: 在虚拟机或者远程桌面环境中,获取到的屏幕尺寸可能是虚拟机的配置,而不是宿主机的实际屏幕尺寸。

所以,在处理屏幕尺寸时,要考虑到这些因素,并根据实际需求选择合适的属性。如果需要非常精确的物理像素尺寸,可能需要结合CSS媒体查询,或者服务器端的信息来辅助判断。

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

495

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

731

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

531

2023.08.01

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

746

2023.08.10

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

592

2023.08.10

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

555

2023.08.21

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

386

2023.08.22

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

1

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号