用Javascipt获取页面元素的位置.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Javascipt获取页面元素的位置

用Javascript获取页面元素的位置 2011-05-25 14:34 阮一峰 阮一峰的博客 我要评论 0 字号:T | T 制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置。本文总结了Javascript在网页定位方面的相关知识,希望对你有帮助,一起来看。 AD: 制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置。下面的教程总结了Javascript在网页定位方面的相关知识。 一、网页的大小和浏览器窗口的大小 首先,要明确两个基本概念。 一张网页的全部面积,就是它的大小。通常情况下,网页的大小由内容和CSS样式表决定。 浏览器窗口的大小,则是指在浏览器窗口中看到的那部分网页面积,又叫做viewport(视口)。 很显然,如果网页的内容能够在浏览器窗口中全部显示(也就是不出现滚动条),那么网页的大小和浏览器窗口的大小是相等的。如果不能全部显示,则滚动浏览器窗口,可以显示出网页的各个部分。 二、获取网页的大小 网页上的每个元素,都有clientHeight和clientWidth属性。这两个属性指元素的内容部分再加上padding的所占据的视觉面积,不包括border和滚动条占用的空间。 (图一 clientHeight和clientWidth属性) 因此,document元素的clientHeight和clientWidth属性,就代表了网页的大小。 function getViewport if patMode BackCompat return width: document.body.clientWidth, height: document.body.clientHeight else return width: document.documentElement.clientWidth, height: document.documentElement.clientHeight 上面的getViewport函数就可以返回浏览器窗口的高和宽。使用的时候,有三个地方需要注意: 1)这个函数必须在页面加载完成后才能运行,否则document对象还没生成,浏览器会报错。 2)大多数情况下,都是document.documentElement.clientWidth返回正确值。但是,在IE6的quirks模式中,document.body.clientWidth返回正确的值,因此函数中加入了对文档模式的判断。 3)clientWidth和clientHeight都是只读属性,不能对它们赋值。 三、获取网页大小的另一种方法 网页上的每个元素还有scrollHeight和scrollWidth属性,指包含滚动条在内的该元素的视觉面积。 那么,document对象的scrollHeight和scrollWidth属性就是网页的大小,意思就是滚动条滚过的所有长度和宽度。 仿照getViewport 函数,可以写出getPagearea 函数。 function getPagearea if patMode BackCompat return width: document.body.scrollWidth, height: document.body.scrollHeight else return width: document.documentElement.scrollWidth, height: document.documentElement.scrollHeight 但是,这个函数有一个问题。如果网页内容能够在浏览器窗口中全部显示,不出现滚动条,那么网页的clientWidth和scrollWidth应该相等。但是实际上,不同浏览器有不同的处理,这两个值未必相等。所以,我们需要取它们之中较大的那个值,因此要对getPagearea 函数进行改写。 function getPagearea if patMode BackCompat return width: Math.max document.body.scrollWidth, document.body.clientWidth , height: Math.max document.body.scrollHeight, document.body.clientHeight else return width: Math.max document.documentElement.scrollWidth, document.documentElement.clientWidth , height: Math.max document.documentElement.scrollHe

文档评论(0)

pab547 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档