如何在JavaScript中获取屏幕,窗口和网页大小

浏览器的各种尺寸是javaScript中比较容易混淆的概念,下面我会在本文中解释这些概念并且通过具体示例告诉大家如何访问它们。

屏幕

屏幕尺寸

屏幕尺寸是屏幕的宽度和高度:显示器或移动屏幕。window.screen是保存屏幕尺寸信息的对象。

  • screen.width:屏幕的宽。
  • screen.height:屏幕的高。
    在这里插入图片描述
    可用屏幕尺寸

可用的屏幕大小由活动屏幕的宽度和高度组成,没有操作系统工具栏。

  • screen.availWidth:可利用的宽,等于屏幕的宽。

  • screen.availHeight:可利用的高,等于屏幕的高减去 mac 顶部栏或 windows 底部栏。
    在这里插入图片描述
    屏幕距离

  • screenTop:浏览器窗口左上角到屏幕上边缘的距离。

  • screenLeft:浏览器窗口左上角到屏幕左边缘的距离。
    Firefox 浏览器不支持上述属性,但是可以使用👇:

  • screenX:等于 screenLeft。

  • screenY:等于 screenTop。

在这里插入图片描述
附录

  • chrome/Opera:保存的是浏览器窗口左上角相对于屏幕的距离
  • 全屏时四个值均为0
  • Firefox/Safari:保存的是浏览器窗口左上角相对于屏幕的距离
    当浏览器窗口全屏化时指的是整个浏览器与屏幕左上角的距离,因为在全屏化的时候浏览器边缘8px的边框不显示,所以screenXscreenY为-8
  • IE:保存的是浏览器窗口文档显示区域的左上角相对于屏幕左上角的位置。
    网页顶部到屏幕顶部的距离:window.screenTop(浏览器全屏为工具栏的高度)
    网页左边到屏幕左边的距离:window.screenLeft(浏览器全屏为0)
  • ie9+:浏览器窗口全屏化时screenXscreenY为-8
var leftPos = (typeof window.screenLeft=='number')?window.screenLeft:window.screenX;
window窗口

窗口外部尺寸

窗口的外部大小由整个浏览器窗口的宽度和高度组成,包含地址栏,选项卡栏和其他浏览器面板。

  • window.outerWidth:浏览器窗口的宽。
  • window.outerHeight:浏览器窗口的高。

在这里插入图片描述

1、
在Chrome和Opera中,当浏览器窗口全屏化时,outerWidthouterHeight指的是可以看到的浏览器部分所占据的空间。

2、在FireFox、Safari、IE9和IE10中,当浏览器窗口全屏化时,outerWidthouterHeight指的不仅是可以看到的浏览器所占据的空间,还包括其未显示部分。当浏览器窗口退出全屏化时,其四周会有8px的边框。而当浏览器窗口全屏化时,边框虽然未被显示,但仍然是计算在outerWidthouterHeight内。

3、IE7、8不支持。

窗口内部尺寸

窗口的内部大小(也称为视口大小)由显示网页的视口的宽度和高度组成,包含滚动条。

  • window.innerWidth:视口的宽。
  • window.innerHeight:视口的高。

在这里插入图片描述

客户区

元素的客户区大小(client dimension),指的是元素内容及其内边距所占据的空间大小

  • clientWidth:内容可视区的宽度。
  • clientHeight:内容可视区的高度。

在这里插入图片描述

1、如果有滚动条clientWidth = 元素宽 + padding(左右) - 滚动条

2、如果没有滚动条clientWidth = 元素宽 + padding(左右)

3、获取页面大小:let pageWidth = document.documentElement.clientWidth ||
document.body.clientWidth(ie7之前的版本);

网页大小

网页大小由呈现的页面内容的宽度和高度组成。

在这里插入图片描述

  • scrollWidth:实际内容的宽度。没有垂直滚动条时与clientWidth相同。否则是等于实际内容的宽度 + paddingscrollWidth也包括 ::before::after这样的伪元素。

  • scrollHeight:实际内容的高度。没有垂直滚动条时与clientHeight相同。否则是等于实际内容的高度 + paddingscrollHeight也包括 ::before::after这样的伪元素。
    滚动距离

  • scrollLeft:元素最左端和窗口中可见内容的最左端之间的距离。即当前左滚的距离

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ronghua_yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值