HTML页面中JavaScript能获取到的各种屏幕大小信息
在HTML页面中,通过JavaScript代码访问 window 对象,能够获取到很多表征屏幕大小的信息,下面列举并加以区分。
window 对象中的屏幕信息
window.innerheight、 window.innerwidth
- 只读属性,以像素计
- 浏览器窗口的文档显示区的高度和宽度
- 不包括菜单栏、工具栏以及滚动条等的高度
- IE8以下不支持这些属性,用 document.documentElement 或 document.body (与 IE 的版本相关)的 clientWidth 和 clientHeight 属性作为替代
window.outerheight、 window.outerwidth
- 只读属性,以像素计
- 整个浏览器窗口的高度和宽度
- 常用于设置 window.open 打开的窗口宽度和高度
- IE8以下不支持此属性,且没有提供替代的属性
window.screenLeft、 window.screenTop、 swindow.creenX、 window.screenY
- 只读属性,整数
- 浏览器窗口的左上角在屏幕上的的 x 坐标和 y 坐标
- IE、Safari 和 Opera 支持 screenLeft 和 screenTop
- Firefox 和 Safari 支持 screenX 和 screenY
window.screen.availHeight、 window.screen.availHeightavailWidth
- 以像素计
- 浏览器的屏幕的可用高度和宽度
- Windows中不包括分配给半永久特性(如屏幕底部的任务栏)的垂直空间
window.screen.height、 window.screen.width
- 以像素计
- 显示器屏幕的高度和宽度
- 调整显示设备的分辨率会发生变化
- 少部分移动设备上面的值并不是真正的显示屏大小,如三星S8
document 对象中的屏幕信息
很复杂!真的很复杂!这些值根据是否指定 DOCTYPEIE 、网页是否超过窗口宽度 有关系。而且FireFox,Chrome这些主流浏览器里面针对元素的 clientWidth、 offsetWidth、 scrollWidth信息技术都有各自的标准。下面简单说明作为参考。详细新在实际应用中进行调整。
下面的 document.body 和 document.documentElement 类似,body也是一个DOM element。
document.body.clientHeight、 document.body.clientWidth
- 浏览器中可显示内容区域的高度和宽度
- document.documentElement 表示元素的可见高度和宽度
- 与页面内容多少无关
- 滚动条不算在内,padding算在内
- clientHeight = topPadding + bottomPadding+ height - scrollbar.height
document.body.offsetHeight、 document.body.offsetWidth
- 包括边线的网页内容可见区域高度和宽度
- offsetHeight = clientHeight + 滚动条 + 边框
document.body.scrollHeight、 document.body.scrollWidth
- 网页正文全文高度和宽度
- 不同的浏览器中 scrollHeight 和 clientHeight 的大小关系不一样
解决方案
可以使用下面的方式折中取 scrollWidth 和 clientWidth :
var scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
var clientWidth = document.documentElement.clientWidth || document.body.clientWidth;
下面列举通用HTML元素 element 的大小属性信息:
- element.clientHeight : 元素的可见高度
- element.clientWidth : 元素的可见宽度
- element.offsetHeight : 元素的高度
- element.offsetWidth : 元素的宽度
- element.offsetLeft : 元素的水平偏移位置
- element.offsetTop : 元素的垂直偏移位置
- element.offsetParent : 元素的偏移容器
- element.scrollHeight : 元素的整体高度
- element.scrollLeft : 元素左边缘与视图之间的距离
- element.scrollTop : 元素上边缘与视图之间的距离
- element.scrollWidth : 元素的整体宽度
由于本人才疏学浅,不乏遗漏错误,欢迎大家指出。
原文出处:http://uusama.com/496.html
HTML页面中JavaScript能获取到的各种屏幕大小信息的更多相关文章
- vue中如何让多个echarts随屏幕大小变化
在vue项目中使用Echarts 一般window.onsize在页面中只能存在一个. 如何在一个页面中多个echarts使用window.onresize? myChart 可以放在Data ...
- vue2.0 在页面中使用process获取全局路径的时候 报错 process is not defined
如果是刚配置好的全局变量需要 重新启动一下vue才能通过proccess.env.xxx 获取到 如果想在html中使用 需要在data中声明一个变量 然后在vue生命周期中 将process.env ...
- 在页面跳转的时候,在跳转后的页面中使用js 获取到 页面跳转的url中携带的参数。
common.js代码 //获取URL中的参数..等等function getQueryString(name){var reg = new RegExp("(^|&)"+ ...
- Android原生代码拦截H5 Web页面中JavaScript弹窗/弹框
<html> <body> <script> function showAlert(){ alert("JavaScript - hello , worl ...
- 对于HTML页面中CSS, JS, HTML的加载与执行过程的简单分析
来自 https://blog.csdn.net/u011088260/article/details/79563315 最近在研究HTML页面中JavaScript的执行顺序问题.在Java ...
- GetConsoleScreenBufferInfo 函数--获取控制台屏幕缓冲区信息
GetConsoleScreenBufferInfo函数 来源:https://msdn.microsoft.com/en-us/library/ms683171(v=vs.85).aspx 作用 获 ...
- 使用JavaScript设置、获取父子页面中的值
一:获取父页面中的值 有二种方法windows.open()和windows.showModalDialog() 1.windos.open(URL,name,reatures,replace) 再父 ...
- jQuery基础学习5——JavaScript方法获取页面中的元素
给网页中的所有<p>元素添加onclick事件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- 一行JavaScript代码获取页面中的所有超链接地址
因为我喜欢收集Web开发类的网址,平时对网址就很敏感. 我总结了一下我收集网址的几个阶段: 1.纯手工阶段,傻傻的阶段. 在这个阶段,主要是收集一些在页面中展现出来的网址,就是说,如果网址出现在HTM ...
随机推荐
- VueJS使用笔记
html: <script src='vue.js'></script> <div id='app'> <span>{{msg}}</span&g ...
- 斯坦福大学自然语言处理第一课——引言(Introduction)
一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课:https://class.co ...
- Python网络编程篇之select和epoll
1. select 原理 在多路复⽤的模型中, ⽐较常⽤的有select模型和epoll模型. 这两个都是系统接⼝, 由操作系统提供. 当然, Python的select模块进⾏了更⾼级的封装. ⽹络 ...
- node学习笔记(二)(ajax方式向node后台提交数据)
通过ajax向node后台提交数据过程(附手写前后台代码),并总结post与get的区别 POST 前台代码 //CSS简单给点样式 <style> form{ width: 200px; ...
- python实战===如何优雅的打飞机
这是一个打飞机的游戏,结构如下: 其中images中包含的素材为 命名为alien.png 命名为ship.png 游戏效果运行是这样的: 敌军,也就是体型稍微大点的,在上方左右移动,并且有规律 ...
- js 事件冒泡和事件捕获
事件流:指的是网页中元素接受事件的顺序,它是一个概念,而不是具体的实际的东西 事件冒泡:指的是内层元素的事件,会触发包含着此元素的外层元素的事件,触发的顺序是:由内而外的 例如: <!DOCTY ...
- JavaScript实现动画效果
说到JavaScript实现动画效果,不得不想到两个函数,setTimeout和setInterval. setTimeout的常用的使用方法为 setTimeout(callback, delay) ...
- MFC中小笔记(二)
6.有三个API函数可以运行可执行文件WinExec.ShellExecute和CreateProcess. 关于这三者的概述总结,有好几篇,自己选择. 1.CreateProcess因为使用复杂, ...
- I/O复用中的 select poll 和 epoll
I/O复用中的 select poll 和 epoll: 这里有一些不错的资料: I/O多路复用技术之select模型: http://blog.csdn.net/nk_test/article/de ...
- HAUT 1261地狱飞龙 自适应辛普森 数值积分
1261: 地狱飞龙 时间限制: 1 秒 内存限制: 64 MB 提交: 300 解决: 68 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌 ...