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日

相关文章

  • css控制边界与边框示例(内边距、外边距使用方法)

    我将为您讲解一下CSS控制边界与边框示例中内边距、外边距的使用方法。 1. 什么是边界与边框 边框是围绕着HTML元素的一条线,用于定义元素的大小、形状和位置等方面。边界是元素周围的空间,包括边框、内边距和外边距三个部分。简单来说,边框是指元素的边缘,而边界则是包括元素本身及其周围的留白。 2. 如何控制边界和边框 2.1 内边距 内边距是指元素边框和元素内…

    css 2023年6月9日
    00
  • javascript用rem来做响应式开发

    当我们设计响应式开发的网站时,经常需要根据不同的屏幕尺寸来调整页面元素的大小。一种解决方案是使用JavaScript来计算和设置元素的大小,而使用rem(根据根元素字体大小而定的相对单位)可以使我们轻松实现响应式开发。以下是使用JavaScript和rem进行响应式设计的攻略: 第一步:在HTML文档的头部设置根元素字体大小 为了计算和设置rem单位,我们需…

    css 2023年6月10日
    00
  • 详解CSS外边距折叠引发的问题

    下面是详解CSS外边距折叠引发的问题的完整攻略。 什么是外边距折叠? 首先,我们需要了解什么是外边距折叠。外边距折叠,指的是当两个或多个相邻的盒子的外边距(margin)相遇时,会合并成一个外边距,即折叠掉多余的外边距,这种现象也被称为外边距合并。 什么情况下会出现外边距折叠? 外边距折叠只会在一定的情况下出现,主要有以下两种情况: 1. 相邻的兄弟元素之间…

    css 2023年6月9日
    00
  • html工作中表格<tbody>标签的使用技巧

    当我们需要在Web页面中展示一些数据时,通常会使用表格(table)进行展示,而<tbody>标签则是定义表格的主体部分。下面是关于<tbody>标签使用技巧的攻略。 1. 什么是<tbody>标签 <tbody>标签用于定义表格的主体部分,通常在<table>标签内部使用。<tbody&gt…

    css 2023年6月10日
    00
  • css中position属性使用详解

    CSS 中 position 属性使用详解 介绍 在 CSS 中,position 属性可以控制 HTML 元素的定位方式,可用于实现元素的绝对定位、相对定位、固定定位等效果。本文将详细介绍 position 属性的五个取值及其用法。 属性值 static static 是 position 的默认值,表示元素采用正常的文档流布局,不会应用 top、bott…

    css 2023年6月9日
    00
  • 高效的表格行背景隔行变色及选定高亮的JS代码

    下面是关于“高效的表格行背景隔行变色及选定高亮的JS代码”的攻略。 一、背景知识 在前端页面制作过程中,常常需要对表格中的数据进行特殊的处理以便更好的呈现给用户。其中对表格进行隔行变色和选定行高亮处理是一种常见的需求。 1. 隔行变色 表格中的隔行变色是一种用于增强视觉效果的技巧,让用户能够更加清晰地看到数据之间的差异性。通常情况下,我们会使用CSS来为表格…

    css 2023年6月9日
    00
  • 解决CSS样式冲突的几个办法(小结)

    在前端开发中,CSS 样式冲突是一个常见的问题。当多个样式表或样式规则应用于同一元素时,可能会导致样式冲突,从而影响网页的外观和布局。以下是关于如何解决 CSS 样式冲突的几个办法的完整攻略。 方法一:使用更具体的选择器 使用更具体的选择器是解决 CSS 样式冲突的一种常见方法。当多个样式规则应用于同一元素时,可以使用更具体的选择器来覆盖较为通用的选择器。以…

    css 2023年5月18日
    00
  • 收集前端面试题之url、href、src

    为了收集前端面试题之url、href、src,我们需要进行以下步骤: 1. 确定面试题范围 在准备前端面试题之前,我们需要先确定本次面试的范围。这可以包括Web开发的基础知识、JavaScript编程、HTML、CSS以及前端常用的框架和库等。根据范围,我们可以列出与之相关的url、href、src相关的面试题。 2. 查找面试题资源 我们可以在互联网上搜索…

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