document.documentElement 和document.body 以及其属性
js中document.documentElement 和document.body 以及其属性
(原来HTML里是document.body  --XHTML里是document.documentElement ,都指的是节点(OR元素)
)
例:
var top = document .documentElement.scrollTop || document .body.scrollTop;
在javascript里||是个好东西,除了能用在if等条件判断里,还能用在变量赋值上。那么上例等同于下例。
例:
var top = document .documentElement.scrollTop ? document .documentElement.scrollTop : document .body.scrollTop;
这么写可以得到很好的兼容性。
相反,如果不做声明的话,document .documentElement.scrollTop反而会显示为0。
得到各个属性如下:
网页可见区域宽: document .body.clientWidth; 
网页可见区域高: document .body.clientHeight; 
网页可见区域宽: document .body.offsetWidth   (包括边线的宽); 
网页可见区域高: document .body.offsetHeight (包括边线的宽); 
网页正文全文宽: document .body.scrollWidth; 
网页正文全文高: document .body.scrollHeight; 
网页被卷去的高: document .body.scrollTop; 
网页被卷去的左: document .body.scrollLeft; 
网页正文部分上: window.screenTop; 
网页正文部分左: window.screenLeft; 
屏幕分辨率的高: window.screen.height; 
屏幕分辨率的宽: window.screen.width; 
屏幕可用工作区高度: window.screen.availHeight; 
屏幕可用工作区宽度:window.screen.availWidth;
scrollHeight: 获取对象的滚动高度。   
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 
scrollWidth:获取对象的滚动宽度 
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置   
event.clientX 相对文档的水平座标 
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标 
event.offsetY 相对容器的垂直坐标   
document .documentElement.scrollTop 垂直方向滚动的值 
event.clientX+document .documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量 
Post by molong on 2009-05-19 11:57 PM #1
要获取当前页面的滚动条纵坐标位置,用: 
document .documentElement.scrollTop; 
而不是: 
document .body.scrollTop; 
documentElement 对应的是 html 标签,而 body 对应的是 body 标签。
在标准w3c下,document .body.scrollTop恒为0,需要用document .documentElement.scrollTop来代替; 
如果你想定位鼠标相对于页面的绝对位置时,你会发现google里面1000篇文章里面有999.99篇会让你使用event.clientX+document .body.scrollLeft,event.clientY+document .body.scrollTop,如果你发现你的鼠标定位偏离了你的想象,请不要奇怪,这是再正常不过的事情。 
ie5.5之后已经不支持document .body.scrollX对象了。 
所以在编程的时候,请加上这样的判断

if (document.body && document.body.scrollTop && document.body.scrollLeft) {    top=document .body.scrollTop;    left=document .body.scrollleft;     } if (document.documentElement && document.documentElement.scrollTop && document.documentElement.scrollLeft) {    top=document.documentElement.scrollTop;    left=document.documentElement.scrollLeft; }

document.documentElement 和document.body 以及其属性的更多相关文章
- js中document.documentElement 和document.body 以及其属性 clientWidth等
		
在设计页面时可能经常会用到固定层的位置,这就需要获取一些html对象的坐标以更灵活的设置目标层的坐标,这里可能就会用到document .body.scrollTop等属性,但是此属性在xhtml标准 ...
 - 不同浏览器对document.documentElement和document.body的scrollheight ,scrollTop,clientHeight以及判断滚动条是否滚动到页面最底部  【转载】
		
前段时间学习怎么写一个瀑布流的时候,就接触到document.documentElement和document.body的区别,然后今天查资料的时候看到这篇博客,遂转载记录在此. 两种特殊的文档属性可 ...
 - 点击图片或者鼠标放上hover .图片变大. 1)可以使用css中的transition, transform  2) 预先设置一个 弹出div. 3)弹出层 alert ; 4) 浏览器的宽度document.documentElement.clientWidth || document.body.clientWidth
		
变大: 方法一: 利用css属性. 鼠标放上 hover放大几倍. .kecheng_02_cell_content img { /*width: 100px; height: 133px;*/ wi ...
 - 【转】document.documentElement和document.body的区别
		
转自:http://www.cnblogs.com/ckmouse/archive/2012/01/30/2332070.html 网页中获取滚动条卷去部分的高度,可以通过 document.body ...
 - document.documentElement和document.body的区别
		
网页中获取滚动条卷去部分的高度,可以通过 document.body.scrollTop 来获取,比如使div跟着滚动条滚动: <div id="div" style=&qu ...
 - document.documentElement和document.body区别介绍
		
document.documentElement和document.body区别介绍 * 区别 body是DOM对象黎明的body子节点,即标签 docummentElement 是整个树的根节点ro ...
 - document.documentElement和document.body  与document.compatMode的关系
		
首先我们看看document.compatMode(兼容模式): document.compatMode它有两种可能的返回值:BackCompat和CSS1Compat, document.compa ...
 - IE/FF/Chrome下document.documentElement和document.body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否已拉到页面最底部
		
DTD已声明 IE document.documentElement.scrollHeight 浏览器所有内容高度 ,document.body.scrollHeight 浏览器所有内容高度 docu ...
 - document.documentElement.clientHeight||document.documentElement.scrollHeight
		
在我看<JavaScript高级程序设计>(第三版)的时候,在clientHeight和scrollHeight那部分把我弄糊涂了. 原书是这样写的:( //宽度同理,就不仔细描述了.) ...
 
随机推荐
- Sphnix
			
Sphinx高性能的搜索引擎(简单.强大.实用) http://blog.csdn.net/lgm252008/article/details/5373354
 - spring jdbc 笔记3
			
spring JDBC 加入对commons-dbcp spring-jdbc spring-tx的依赖 1.数据源的配置 获取数据源在spring中的Bean管理默认已经是单例模式 关闭数据源d ...
 - 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)
			
原文 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习) Mono.Cecil是一个强大的MSIL的注入工具,利用它可以实现动态创建程序集,也可以实现拦截器横向切入动态方法,甚至还 ...
 - Vim中如何全选并复制?
			
全部删除:按esc后,然后dG全部复制:按esc后,然后ggyG 全选高亮显示:按esc后,然后ggvG(这个好像有点问题)或者ggVG正确 vim如何与剪贴板交互(将vim的内容复制出来) 习惯了在 ...
 - BCB6.0是垃圾的二十条理由
			
我用的BCB6.0和windows2000 都是公司配的正版,我也有多年的开发经验. 1. IDE常常出现非法操作,有时重起动还会出错,须要重装BCB. 2. 自己主动完毕和智能提示功能超慢,慢到能够 ...
 - MySQL 讨厌哪种类型的查询
			
㈠ 任何查询都讨厌 只要是查询.MySQL都讨厌.执行查询最快的方式就是不去执行 缓存为王.比如Redis或者memcache ㈡ 查 ...
 - 直播时代--IOS直播客户端SDK,美艳直播【开源】
			
看到该文章我非常喜欢,为了方便自己查看和参考所以将其复制过来,源文地址:http://www.cnblogs.com/runner42/p/5241407.html 请支持原作者.原作者如看到请原谅复 ...
 - 【linux】 linux gpio操作
			
欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...
 - python成长之路——第三天
			
一.collections系列: collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在pyt ...
 - POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)
			
用01分数规划 + prime + 二分 竟然2950MS惊险的过了QAQ 前提是在TLE了好几次下过的 = = 题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一 ...