首先,这是个痛苦的尝试。
在工作中尝试把一个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中,获取元素的宽、高和位置是常见的需求,这有助于进行精确的布局和交互设计。以下是一些关键的知识点: 1. **JavaScript获取元素尺寸和位置** - `getBoundingClientRect()`: 这是JavaScript...
要实现这一功能,主要涉及CSS中的`position`属性以及JavaScript对滚动事件的监听和处理。下面将详细解释实现该效果的具体步骤和技术要点。 #### CSS定位技术 首先,了解CSS中几种常用的定位方式: 1. **Static定位*...
总之,JavaScript 提供了多种方式来获取网页宽高和滚动位置,但需要注意的是,这些属性在不同的浏览器中可能存在差异,因此在编写代码时,需要进行适当的浏览器兼容性检查和调整,以确保代码在各种环境下都能正确...
3. **计算样式**:获取元素的实际宽高和边距,以便计算每个元素在页面中的位置。CSS的getComputedStyle方法可以获取元素的最终计算样式。 4. **布局算法**:瀑布流的核心是布局算法。一种常见的方法是先按列将元素...
关键在于使用CSS的`overflow`属性来创建可滚动区域,并通过JavaScript实现内容的动态加载和更新。 1. **CSS布局**: - 创建一个主容器(例如,名为`container`的div),设置其宽高和内边距,确保内容区有足够的...
在`.wxml`文件中,我们需要为列表项设置适当的宽高和触摸反馈,以确保滑动效果正常。 在源代码中,`https://www.cnblogs.com/xinheng/p/9605200.html`这篇博客文章提供了具体的实现思路。通过阅读这篇文章,我们...
接着是获取整个网页的宽高和滚动位置。`scrollWidth` 和 `scrollHeight` 分别用于获取网页的实际宽度和高度,包括不可见部分。`scrollTop` 和 `scrollLeft` 则分别代表网页向上滚动的距离和向左滚动的距离。这些属性...
2. **创建HTML结构**:在页面中预留出用于显示水印的区域,可以是一个div元素,设置适当的宽高和定位。 3. **编写CSS样式**:定义水印的样式,包括颜色、透明度、字体大小、旋转角度等。可以设置为绝对定位,使其...
在本文中,我们将探讨如何使用JavaScript(JS)来实现一个简单的微信聊天效果。这个效果主要包含以下几个关键点: 1. **HTML布局**:首先,HTML结构是构建聊天界面的基础。`<div>`元素被用来创建两个聊天窗口,分别...
3.2 防抖与节流:在处理用户输入或者窗口滚动等高频事件时,使用防抖和节流技术可以避免性能瓶颈,降低服务器压力。 四、前端开发工具与流程 4.1 构建工具:介绍使用Grunt、Gulp或Webpack等构建工具进行自动化任务...
ECharts 是一个基于 JavaScript 的开源可视化库,广泛应用于数据可视化的场景中,尤其在Web开发领域,它提供了丰富的图表类型,包括柱状图、折线图、饼图以及地图等。"ECharts 地图"是指ECharts库中的地图功能,它...
例如,窗口部分使用了绝对定位,并设置了宽高和边框样式,使其看起来更像是一个独立的窗口界面。 JavaScript部分则是实现仿命令行界面动态交互的核心。通过使用jQuery库,我们简化了JavaScript代码的编写,实现了在...