js 获取屏幕各种宽高的方法(浏览器兼容)

获取屏幕各种宽高是JS中常见的需求之一。不同屏幕大小、分辨率、设备类型对于页面要展示的内容影响很大。下面是JS获取屏幕各种宽高的方法及浏览器兼容性的攻略。

获取屏幕分辨率

我们可以使用window.screen.widthwindow.screen.height获取屏幕分辨率,这两个属性返回的是数值型数据,单位是像素,例如:

console.log(window.screen.width); // 输出屏幕宽度像素数
console.log(window.screen.height); // 输出屏幕高度像素数

兼容性:IE4+、Chrome、Firefox、Safari、Opera。

获取屏幕可用窗口区域的宽高

window.screen对象的availWidthavailHeight属性分别用于获取(应用程序标准)窗口区域的可用宽度和可用高度,使用方式如下:

console.log(window.screen.availWidth); // 输出可用宽度像素数
console.log(window.screen.availHeight); // 输出可用高度像素数

兼容性:IE4+、Chrome、Firefox、Safari、Opera。

获取浏览器窗口宽高

下面的示例代码展示了如何获取浏览器窗口的宽度和高度。

function getWindowSize() {
  var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
  var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
  return {
    width: w,
    height: h
  };
}

这里我们使用window.innerWidthwindow.innerHeight获取浏览器窗口的宽度和高度。如果这两个属性的值为undefined,说明不支持innerWidthinnerHeight,此时我们可以使用document.documentElement.clientWidthdocument.documentElement.clientHeightdocument.body.clientWidthdocument.body.clientHeight,根据浏览器具体情况返回窗口宽度和高度。

兼容性:window.innerWidthwindow.innerHeight IE9+、Chrome、Firefox、Safari、Opera;其他方式的兼容性较好。

获取屏幕的物理宽高

下面这个示例展示了如何获取屏幕的物理宽和高。

function getScreenSize() {
  var w = screen.width * window.devicePixelRatio;
  var h = screen.height * window.devicePixelRatio;
  return {
    width: w,
    height: h
  };
}

这里我们通过screen.widthscreen.height获取屏幕的物理宽度和高度,然后乘以window.devicePixelRatio得到实际像素宽度和高度,返回值为一个对象,属性值分别为宽度和高度。

兼容性:IE不支持devicePixelRatio,其他浏览器兼容性较好。

综上所述,我们可以使用这些方法适配不同的场景,实现网页宽高动态适配。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 获取屏幕各种宽高的方法(浏览器兼容) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Dreamweaver中CSS面板该怎么设置?

    Dreamweaver 是一款流行的网页设计工具,它提供了一个 CSS 面板,用于管理和编辑 CSS 样式。下面是一个完整攻略,包含了如何在 Dreamweaver 中设置 CSS 面板的过程和两个示例说明。 Dreamweaver 中 CSS 面板的设置 步骤一:打开 CSS 面板 首先,我们需要打开 Dreamweaver 中的 CSS 面板。在 Dre…

    css 2023年5月18日
    00
  • element-plus 在vue3 中不生效的原因解决方法(element-plus引入)

    问题背景:在 Vue3 项目中,使用 Element Plus UI 库,但是页面中没有任何样式和交互效果。 问题原因:Element Plus 中的部分功能依赖于 Vue2 的写法,与 Vue3 有所不符,因此导致了 Element Plus 在 Vue3 中不生效。 解决方法:需要以下两个步骤: 第一步:安装 Element Plus 库在项目根目录下打…

    css 2023年6月9日
    00
  • 使用CSS改变图片颜色的100种方法(值得收藏)

    该攻略主要介绍了使用 CSS 语法进行图片颜色修改的一百种方式,旨在帮助开发者们快速了解并掌握这些方法。 使用 CSS 改变图片颜色的 100 种方法 为了更好地阐述这些方法,我们先准备一张待处理的图片,该图片会在接下来的示例中被反复引用。下面是对该图片的描述和代码: 待处理图片 描述:一张黑色的背景,上面有一些紫色的图案。 代码: <img src=…

    css 2023年6月9日
    00
  • React 中使用 Redux 的 4 种写法小结

    React 中使用 Redux 的 4 种写法小结指的是在 React 中集成 Redux 的四种不同的方法。这四种方法分别是: 1.传统的用法(Traditional Way) 2.React-Redux 库的用法(Using React-Redux Library) 3.Redux Hooks 的用法(Using Redux Hooks) 4.Redux…

    css 2023年6月10日
    00
  • 简单掌握CSS3中resize属性的用法

    下面是详细讲解“简单掌握CSS3中resize属性的用法”的完整攻略。 一、简介 CSS3中的resize属性可以让我们控制一个元素是否可以改变大小。通过设置resize属性的值,我们可以控制元素的可调整大小范围和方向。有时候,我们需要让用户能够通过拖动边框来调整元素的大小以适配不同的屏幕,这时候resize属性就有了很大的作用。 二、语法 resize属性…

    css 2023年6月10日
    00
  • CSS实现进度条和订单进度条

    下面我将详细讲解如何在网页中使用CSS实现进度条和订单进度条的完整攻略。 CSS 实现进度条 在CSS中,我们可以使用伪元素 ::before 和 ::after 来实现进度条。以下是 HTML 和 CSS 代码: <div class="progress-bar"> <div class="progress&…

    css 2023年6月11日
    00
  • HTML仿命令行界面具体实现

    下面是HTML仿命令行界面具体实现的攻略: 1. HTML基础 首先需要掌握HTML基础,包括标签、属性、语义化等。对于仿命令行界面,需要有良好的结构和样式,可以通过使用div、ul、li、span等标签来实现。同时,为了达到更好的交互效果,可以使用JavaScript来操作DOM元素。 2. CSS样式制作 为了使仿命令行界面更加真实,需要对CSS样式进行…

    css 2023年6月10日
    00
  • 基于jquery的可多选的下拉列表框

    这里是基于jQuery的可多选下拉列表框实现攻略。 实现思路 使用jQuery作为主要框架,便于操作DOM元素; 首先隐藏原生的下拉列表框,然后在它的位置上添加一个自定义的下拉框,用于显示选中的选项; 给自定义下拉框添加打开和关闭事件,分别显示和隐藏下拉选项,用输入框实现搜索功能; 在下拉列表中添加复选框,并为每个复选框绑定点击事件,点击时更新自定义下拉框中…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部