Skip to main content

高度及顶部距离

目录

  1. 介绍:介绍页面的容器(屏幕、浏览器及页面)、物理尺寸与分辨率、展示等内容。

  2. 屏幕信息:介绍屏幕尺寸信息;如:屏幕、软件可用以及任务栏的高度和宽度。

  3. 浏览器信息:介绍浏览器尺寸信息;如:浏览器、内部页面以及工具栏的高度和宽度。

  4. 页面信息:介绍 HTML 页面尺寸信息;如:body 总的、展示的高度和宽度。

一、介绍

  1. 容器 一个页面的展示,从外到内的容器为:屏幕、浏览器以及页面本身。

HTML 元素展现在页面内,页面展现在浏览器内,而浏览器展现在屏幕内。

通过 Js 的一些对象可以获取这些容器的高度、宽度。

  1. 物理尺寸和分辨率 容器的尺寸是指当前分辨率下的高度、宽度,而不是物理高度、宽度。

如:一个 22 寸的显示器,屏幕分辨率为 1366 * 768,那么获取到的屏幕高度为 1366px,宽度为 768px。

  1. 展示图

注意:

图中的 body 根据 HTML 的文档渲染模式不同指定的 body 也不同。

// 标准模式时(document.compatMode == 'CSS1Compat'),body = document.documentElement
var body = (document.compatMode && document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;

二、屏幕信息

screen.height :屏幕高度。

screen.width :屏幕宽度。

screen.availHeight :屏幕可用高度。即屏幕高度减去上下任务栏后的高度,可表示为软件最大化时的高度。

screen.availWidth :屏幕可用宽度。即屏幕宽度减去左右任务栏后的宽度,可表示为软件最大化时的宽度。

任务栏高/宽度 :可通过屏幕高/宽度 减去 屏幕可用高/宽度得出。如:任务栏高度 = screen.height - screen.availHeight 。

三、浏览器信息

window.outerHeight :浏览器高度。

window.outerWidth :浏览器宽度。

window.innerHeight :浏览器内页面可用高度;此高度包含了水平滚动条的高度(若存在)。可表示为浏览器当前高度去除浏览器边框、工具条后的高度。

window.innerWidth :浏览器内页面可用宽度;此宽度包含了垂直滚动条的宽度(若存在)。可表示为浏览器当前宽度去除浏览器边框后的宽度。

工具栏高/宽度 :包含了地址栏、书签栏、浏览器边框等范围。如:高度,可通过浏览器高度 - 页面可用高度得出,即:window.outerHeight - window.innerHeight。

四、页面信息

body.offsetHeight :body 总高度。

body.offsetWidth :body 总宽度。

body.clientHeight :body 展示的高度;表示 body 在浏览器内显示的区域高度。

body.clientWidth :body 展示的宽度;表示 body 在浏览器内显示的区域宽度。

滚动条高度/宽度 :如高度,可通过浏览器内页面可用高度 - body 展示高度得出,即 window.innerHeight - body.clientHeight。

getBoundingClientRect

这个方法返回一个矩形对象,包含 6 个属性:left、right、top、bottom、width、height。这些属性给出了元素在页面中相对于视口的位置。

var rect = d.getBoundingClientRect();
rect.left; //50
rect.right; //350
rect.width; //300
rect.top; //50
rect.bottom; //350
rect.height; //300

常用检测代码

高度

const element = document.getElementById("current");

console.log("元素内联高度", element.style.height);
console.log("元素总高度", element.offsetHeight);
console.log("元素展示高度", element.clientHeight);
console.log("元素视口高度", element.getBoundingClientRect().height);

距离顶部高度

const element = document.getElementById("current");

console.log("元素内联顶部", element.style.top);
console.log("元素距离文档顶部", element.offsetTop);
console.log("元素距离父级顶部", element.clientTop);
console.log("元素滚动条距离顶部", element.scrollTop);
console.log("元素距离视口顶部", element.getBoundingClientRect().top);

链接

引用地址: HTML 获取屏幕、浏览器、页面的高度宽度 >js 获取元素宽高 >js 判断当前设备及获取设备、浏览器的宽度和高度 js 通过屏幕宽度判断设备类型](https://blog.csdn.net/mouday/article/details/106940596) 屏幕尺寸大全 >[转载]获取当前元素到页面底部的距离及其他获取距离问题 >获取元素距离浏览器周边的位置的方法 getBoundingClientRect