`
langgufu
  • 浏览: 2305688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS中取得的关于窗口宽高和滚动值的属性列表:(转载)

阅读更多

首先,这是个痛苦的尝试。
  在工作中尝试把一个FLASH居中全屏放置,窗口RESIZE的时候和页面SCROLL的时候都要动态变化,需要取得当前窗口显示区域的WIDTH与HEIGHT,翻了翻资料脑子就一半面一半水搅匀了。类似的参数我全列出来:

window.screen.width: document.body.offsetWidth: document.documentElement.offsetWidth:
window.screen.height: document.body.offsetHeight: document.documentElement.offsetHeight:
window.screen.availWidth: document.body.scrollWidth: document.documentElement.scrollWidth:
window.screen.availHeight: document.body.scrollHeight: document.documentElement.scrollHeight:
window.scrollMaxX: document.body.scrollLeft: document.documentElement.scrollLeft:
window.scrollMaxY: document.body.scrollTop: document.documentElement.scrollTop:
window.scrollX: document.body.clientTop: document.documentElement.clientTop:
window.scrollY: document.body.clientLeft: document.documentElement.clientLeft:
window.pageXOffset: document.body.clientWidth: document.documentElement.clientWidth:
window.pageYOffset: document.body.clientHeight: document.documentElement.clientHeight:
window.screenX: document.width:  
window.screenY: document.height:  
window.innerWidth:    
window.innerHeight:    
window.screen.availTop    
window.screen.availLeft    


  而且我痛苦的发现,同一个属性,在不同的浏览器的JS取值是不一样的,甚至是无效的,就算都在IE中不同版本的值也不一样的,W3C的标准就从没被完整执行过,微软丈着本钱厚,肆意修改其定义,而且朝三暮四,同样一个事在版本升级时也搞出不同的标准来,一看开发组群就不是一个娘养的。

 


  就在同一个版本同一浏览器中,标准模式与混杂模式的定义也大不相同,比如document.documentElement.scrollWidth和document.body.scrollWidth,在混杂模式中,后者有效前者无效,在标准模式中前者有效后者无效,直接让人崩溃。无奈之下,把这个参数用JS统一列出来,一个个做实验,这才做成了一个完整的结果。如下表,当然,这只是在标准模式下,混杂模式我一般不用,也没精力去研究了。


  

  IE6 IE8 FF OPREA CHROME
window.screen.width: 屏幕宽
window.screen.height: 屏幕高
window.screen.availWidth: 窗口最大化后宽度
window.screen.availHeight: 窗口最大后的高度
window.scrollMaxX:   最大横向滚动幅度,即BODY加左MARGIN减去窗口显示区不含滚动棒的宽度后的值  
window.scrollMaxY: 最大纵向滚动幅度,即BODY加上下MARGIN减去窗口显示区不含滚动棒的高度后的值
window.scrollX: 左滚动值
window.scrollY: 上滚动值
window.pageXOffset: 左滚动值
window.pageYOffset: 上滚动值
window.screenX: 窗口左上角离屏幕左上角横向距离 标准模式下均为0. 窗口左上角离屏幕左上角横向距离
window.screenY: 窗口左上角离屏幕左上角纵向距离 标准模式下均为0. 窗口左上角离屏幕左上角纵向距离
window.innerWidth: 窗口显示区宽含滚动棒,同IE8的document.documentElement.offsetWidth:
window.innerHeight: 窗口显示区高含滚动棒,同IE的document.documentElement.offsetHeight:
window.screen.availTop   窗口最大化后的window.screenX:   窗口最大化后的window.screenX:
window.screen.availLeft 窗口最大化后的window.screenY: 窗口最大化后的window.screenY:
document.body.offsetWidth: 窗口显示区不含滚动棒宽度减去左右margin值后的数字/BODY宽度两者取大值 窗口显示区不含滚动棒宽度减左右MARGIN,最小为0
document.body.offsetHeight: BODY高度,不含滚动棒与MARGIN
document.body.scrollWidth: 同IE6的document.body.offsetWidth: 同IE8,FF,oprea的document.body.offsetWidth: 浏览器窗口的宽度,最小值取BODY加MARGINLEFT值,不含滚动棒
document.body.scrollHeight: 同IE,FF,OPREA的document.body.offsetHeight: BODY高度加MARGIN值/窗口显示区高度不含滚动棒取两者取其大
document.body.scrollLeft: 标准模式下均为0. 左滚动值
document.body.scrollTop: 上滚动值
document.body.clientTop: 标准模式下均为0.
document.body.clientLeft: 标准模式下均为0.
document.body.clientWidth: 窗口显示区不含滚动棒宽度/BODY宽度两者之最大值 同IE8,FF,oprea的document.body.offsetWidth:
document.body.clientHeight: 同IE,FF,OPREA的document.body.offsetHeight:
document.documentElement.offsetWidth: 窗口显示区的宽度,含滚动棒 浏览器窗口的宽度,不含滚动棒
document.documentElement.offsetHeight: 窗口显示区的高度,含滚动棒 BODY高度加MARGIN
document.documentElement.scrollWidth: 窗口显示区宽度不含滚动棒/BODY加两边MARGIN两者中大值 窗口显示区不含滚动棒宽度/BODY宽度加左GARGIN值两者中最大值
document.documentElement.scrollHeight: BODY的高度 BODY加上下MARGIN值 窗口显示区不含滚动棒高度/body加上下MARGIN两者中最大值 同IE8
document.documentElement.scrollLeft: 左滚动值 0
document.documentElement.scrollTop: 上滚动值 0
document.documentElement.clientTop: 2 标准模式下均为0.
document.documentElement.clientLeft: 2 标准模式下均为0.
document.documentElement.clientWidth: 窗口显示区的宽度,不含滚动棒
document.documentElement.clientHeight: 窗口显示区的高度,不含滚动棒
document.width:   同IE8,FF,oprea的document.body.offsetWidth:   同document.body.scrollWidth
document.height: 同IE8,FF,oprea的document.body.offsetWidth: document.body.s
分享到:
评论

相关推荐

    JavaScript与JQUERY获取元素的宽、高和位置

    在JavaScript和jQuery中,获取元素的宽、高和位置是常见的需求,这有助于进行精确的布局和交互设计。以下是一些关键的知识点: 1. **JavaScript获取元素尺寸和位置** - `getBoundingClientRect()`: 这是JavaScript...

    div随着滚动条滚动,但是到了顶部,便不随着滚动了

    要实现这一功能,主要涉及CSS中的`position`属性以及JavaScript对滚动事件的监听和处理。下面将详细解释实现该效果的具体步骤和技术要点。 #### CSS定位技术 首先,了解CSS中几种常用的定位方式: 1. **Static定位*...

    javascript获取网页宽高方法汇总.docx

    总之,JavaScript 提供了多种方式来获取网页宽高和滚动位置,但需要注意的是,这些属性在不同的浏览器中可能存在差异,因此在编写代码时,需要进行适当的浏览器兼容性检查和调整,以确保代码在各种环境下都能正确...

    08-瀑布流插件.zip

    3. **计算样式**:获取元素的实际宽高和边距,以便计算每个元素在页面中的位置。CSS的getComputedStyle方法可以获取元素的最终计算样式。 4. **布局算法**:瀑布流的核心是布局算法。一种常见的方法是先按列将元素...

    用DIV仿iframe框架布局效果

    关键在于使用CSS的`overflow`属性来创建可滚动区域,并通过JavaScript实现内容的动态加载和更新。 1. **CSS布局**: - 创建一个主容器(例如,名为`container`的div),设置其宽高和内边距,确保内容区有足够的...

    左滑删除.rar

    在`.wxml`文件中,我们需要为列表项设置适当的宽高和触摸反馈,以确保滑动效果正常。 在源代码中,`https://www.cnblogs.com/xinheng/p/9605200.html`这篇博客文章提供了具体的实现思路。通过阅读这篇文章,我们...

    谈谈JS中常遇到的浏览器兼容问题和解决方法

    接着是获取整个网页的宽高和滚动位置。`scrollWidth` 和 `scrollHeight` 分别用于获取网页的实际宽度和高度,包括不可见部分。`scrollTop` 和 `scrollLeft` 则分别代表网页向上滚动的距离和向左滚动的距离。这些属性...

    基于JQuery的页面水印

    2. **创建HTML结构**:在页面中预留出用于显示水印的区域,可以是一个div元素,设置适当的宽高和定位。 3. **编写CSS样式**:定义水印的样式,包括颜色、透明度、字体大小、旋转角度等。可以设置为绝对定位,使其...

    js实现微信聊天效果

    在本文中,我们将探讨如何使用JavaScript(JS)来实现一个简单的微信聊天效果。这个效果主要包含以下几个关键点: 1. **HTML布局**:首先,HTML结构是构建聊天界面的基础。`<div>`元素被用来创建两个聊天窗口,分别...

    支付宝前端技术之路中文PDF版

    3.2 防抖与节流:在处理用户输入或者窗口滚动等高频事件时,使用防抖和节流技术可以避免性能瓶颈,降低服务器压力。 四、前端开发工具与流程 4.1 构建工具:介绍使用Grunt、Gulp或Webpack等构建工具进行自动化任务...

    ECharts 地图

    ECharts 是一个基于 JavaScript 的开源可视化库,广泛应用于数据可视化的场景中,尤其在Web开发领域,它提供了丰富的图表类型,包括柱状图、折线图、饼图以及地图等。"ECharts 地图"是指ECharts库中的地图功能,它...

    HTML仿命令行界面具体实现

    例如,窗口部分使用了绝对定位,并设置了宽高和边框样式,使其看起来更像是一个独立的窗口界面。 JavaScript部分则是实现仿命令行界面动态交互的核心。通过使用jQuery库,我们简化了JavaScript代码的编写,实现了在...

Global site tag (gtag.js) - Google Analytics