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媒体查询,或者服务器端的信息来辅助判断。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

515

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

319

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5328

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

481

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

218

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

219

2023.09.21

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

8

2026.01.30

热门下载

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

精品课程

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

共101课时 | 8.6万人学习

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

共39课时 | 3.2万人学习

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

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