博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Html Document窗口的尺寸和位置
阅读量:4982 次
发布时间:2019-06-12

本文共 2795 字,大约阅读时间需要 9 分钟。

在web前端编程中,我们有的时候需要获取浏览器有关窗口的大小和位置,尤其是浏览器窗口可视区域的大小和位置,更是我们经常要用到的。

 

一般的,在获取浏览器窗口的大小和位置时,有以下几个属性可以使用:

1)       window.innerHeight

2)       window.innerWidth

3)       window.pageXOffset

4)       window.pageYOffset

5)       document.documentElement.clientHeight

6)       document.documentElement.clientWidth

7)       document.documentElement.scrollLeft

8)       document.documentElement.scrollTop

9)       document.body.clientHeight

10)   document.body.clientWidth

11)   document.body.scrollLeft

12)   document.body.scrollTop

 

在不同的浏览器中,以上12个属性所代表的意义也是不一样的。特别需要注意的是,当使用或者不使用<!DOCTYPE>声明显示一个文档的时候,以上12个属性的意义也会发生变化。

为彻底搞清楚它们的含义,笔者在IE6/IE7/IE8/IE9/FireFox/Chrome/Safari下进行了测试,总结如下表所示:

 

                                                              浏览器

 

属性

Firefox/Chrome/Safari

(带<!DOCTYPE>声明)

Firefox/Chrome/Safari

(不带<!DOCTYPE>声明)

IE 6/7/8/9

 (带<!DOCTYPE>声明)

IE 6/7/8/9

(不带<!DOCTYPE>声明)

window.innerWidth/innerHeight

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

IE 6/7/8

Undefined

 

IE 9

同Firefox

IE 6/7/8

Undefined

 

IE 9

同Firefox

document.documentElement.clientWidth/clientHeight

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

<html>元素的宽度和高度(注意包括了不可见的区域)

IE 6/7/8/9

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

IE 6/7/8

总为0

 

IE 9

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

document.body.clientWidth/clientHeight

<body>元素的宽度和高度(注意,包括了不可见的区域)

窗口显示区(可视区域)的宽度和高度,包括滚动条区域

<body>元素的宽度和高度(注意,它包括了不可见的区域)

IE 6/7/8

窗口显示区(可视区域)的宽度和高度,包括滚动条区域)

 

IE 9

<body>元素的宽度和高度(注意,它包括了不可见的区域)

window.pageXOffset/pageYOffset

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

IE 6/7/8

Undefined

 

IE 9

同Firefox

IE 6/7/8

Undefined

 

IE 9

同Firefox

document.documentElement.scrollTop/scrollLeft

Firefox:

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离,同window.pageXOffset/pageYOffset

 

Chrome/Safari:

总为0

总为0

IE 6/7/8/9

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

IE 6/7/8

总为0

 

IE 9

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

document.body.scrollTop/scrollLeft

FireFox:

总为0

 

Chrome/Safari:

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离,同window.pageXOffset/pageYOffset

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离,同window.pageXOffset/pageYOffset

 

总为0

IE 6/7/8

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

 

IE 9

当前页面相对于窗口显示区左上角的 X /Y位置,即水平/垂直滚动条已滚动的距离

 

特别指出的是,在IE 9中,无论是否使用<!DOCTYPE>声明显示一个文档,document.documentElement和document.body中的相关属性的意义总是相同的。这点与IE 6/7/8表现不一样。

 

综合上表,以下是获取浏览器窗口可视区域(不包括滚动条)和滚动条位置的代码,它兼容主流浏览器(IE/Firefox/Chrome/Safari):

 

// 获取浏览器窗口的可视区域的宽度function getViewPortWidth() {    return document.documentElement.clientWidth || document.body.clientWidth;}// 获取浏览器窗口的可视区域的高度function getViewPortHeight() {    return document.documentElement.clientHeight || document.body.clientHeight;}// 获取浏览器窗口水平滚动条的位置function getScrollLeft() {    return document.documentElement.scrollLeft || document.body.scrollLeft;}// 获取浏览器窗口垂直滚动条的位置function getScrollTop() {    return document.documentElement.scrollTop || document.body.scrollTop;}

 

转载于:https://www.cnblogs.com/hencehong/archive/2012/11/07/html_window_dimension_position.html

你可能感兴趣的文章
20.Python笔记之SqlAlchemy使用
查看>>
iOS中过滤html文档中的标签
查看>>
Entity Framework Core 生成跟踪列
查看>>
iOS消息推送证书创建过程
查看>>
MOTION-MATCHING IN UBISOFT’S FOR HONOR翻译
查看>>
Python:SQLMap源码精读—基于时间的盲注(time-based blind)
查看>>
矩阵树定理学习笔记
查看>>
洛谷 P1053 逛公园 解题报告
查看>>
医疗基本知识之医嘱篇(一)医嘱的定义及基本规范
查看>>
通用JS验证框架(ChkInputs)概述
查看>>
js_立即执行函数
查看>>
高效读取文件
查看>>
js设计模式(4)---组合模式
查看>>
条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
查看>>
项目中的那些事---时间戳(一)
查看>>
每周学习总结
查看>>
配置Eclipse编写HTML/JS/CSS/JSP页面的自动提示
查看>>
【Git使用】SourceTree+Git简单使用(Windows)(转)
查看>>
2017年终总结
查看>>
使用SSH 工具 Xshell 6连接CentOS 7.4
查看>>