document.documentElement.getBoundingClientRect
下面这是MSDN的解释:
Syntax
oRect
= object
.getBoundingClientRect(
)
Return Value
Returns a TextRectangle
object. Each rectangle has four integer properties (top, left, right, and bottom) that represent a coordinate of the rectangle, in pixels.
Remarks
This method retrieves an object that exposes the left, top, right, and bottom coordinates of the union of rectangles relative to the client's upper-left corner. In Microsoft Internet Explorer 5, the window's upper-left is at 2,2 (pixels) with respect to the true client.
还是实际解释下,该方法获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。也不好理解,下面用图说明下。
该方法已经不再是IE Only了,FF3.0+和Opera9.5+已经支持了该方法,可以说在获得页面元素位置上效率能有很大的提高,在以前版本的Opera和Firefox中必须通过循环来获得元素在页面中的绝对位置。
下面的代码举了个简单的例子,可以滚动滚动条之后点红色区域看各个值的变化。
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=utf-8"
/>
<
title
>
Demo
</
title
>
</
head
>
<
body
style
="width:2000px; height:1000px;"
>
<
div
id
="demo"
style
="position:absolute; left:518px; right:100px; width:500px; height:500px; background:#CC0000; top: 114px;"
>
Demo为了方便就直接用绝对定位的元素
</
div
>
</
body
>
</
html
>
<
script
>
document.getElementById(
'
demo
'
).onclick
=
function
(){
if
(document.documentElement.getBoundingClientRect) {
alert(
"
left:
"
+
this
.getBoundingClientRect().left)
alert(
"
top:
"
+
this
.getBoundingClientRect().top)
alert(
"
right:
"
+
this
.getBoundingClientRect().right)
alert(
"
bottom:
"
+
this
.getBoundingClientRect().bottom)
var
X=
this
.getBoundingClientRect().left
+
document.documentElement.scrollLeft;
var
Y
=
this
.getBoundingClientRect().top
+
document.documentElement.scrollTop;
alert(
"
Demo的位置是X:
"
+X
+
"
;Y:
"
+
Y)
}
}
</
script
>
有了这个方法,获取页面元素的位置就简单多了,
var
X
=
this
.getBoundingClientRect().left
+
document.documentElement.scrollLeft;
var
Y
=
this
.getBoundingClientRect().top
+
document.documentElement.scrollTop;
- 大小: 17.1 KB
- 大小: 14.5 KB
分享到:
相关推荐
js getBoundingClientRect() 来获取页面元素的位置 js 中的 getBoundingClientRect() 方法用于获取页面元素的位置信息,该方法可以获取元素相对于客户端窗口的 left、top、right 和 bottom 坐标值。 js ...
js getBoundingClientRect 使用方法详解 getBoundingClientRect 是一个常用的 JavaScript 方法,用于获取元素的大小及其相对于视口的位置。该方法返回一个 DOMRect 对象,该对象包含了元素的宽度、高度、left、top...
### JavaScript中的`getBoundingClientRect()`方法详解 #### 一、引言 在Web开发中,我们经常需要获取页面中某个元素的尺寸以及它相对于视口的位置。`getBoundingClientRect()`方法为实现这一需求提供了一个简单而...
### JavaScript 中 `getBoundingClientRect` 的作用及兼容方案详解 #### 一、`getBoundingClientRect` 的基本概念 在JavaScript中,`getBoundingClientRect()` 方法是 Element 对象的一个重要成员方法,主要用于...
总之,`getBoundingClientRect` 是JavaScript中获取元素位置信息的强大工具,虽然在旧版浏览器中存在兼容性问题,但通过适当的代码调整,我们可以确保在各种浏览器环境下都能正确获取元素的视口相对位置。
浏览器getBoundingClientRect解析 浏览器中的getBoundingClientRect方法是获取元素的矩形边界信息,如top、left、width、height等。该方法返回一个DOMRect对象,包含元素的矩形边界信息。在本文中,我们将对各种...
`getBoundingClientRect`是JavaScript中一个非常实用的DOM方法,它能够获取到元素的几何信息,包括元素相对于视口的位置。这个方法返回一个`DOMRect`对象,包含了元素的`top`、`left`、`right`、`bottom`、`width`和...
这里的关键就是JavaScript中的`getBoundingClientRect`方法,它能获取到元素相对于视口的位置信息,包括top、right、bottom和left等属性。 首先,我们需要监听窗口的滚动事件,通常使用`window.addEventListener('...
所以,网页元素的相对位置就是 var X= this.getBoundingClientRect().left; var Y =this.getBoundingClientRect().top; 再加上滚动距离,就可以得到绝对位置 var X= this.getBoundingClientRect().left+document....
请使用 element.getBoundingClientRect()。 经本人测试,确实是Firefox在含flash的网页上提示,还不知道原因,也没找到解决办法。 Firefox版本:3.0.3 Flash: 10.0 html页面代码: 代码如下:<html> <body&...
`getBoundingClientRect()` 是JavaScript中一个非常实用的DOM方法,它用于获取元素在视口中的边界信息,包括元素的顶部、底部、左侧和右侧相对于视口的位置。这个方法在现代浏览器中广泛支持,包括IE5以上版本、Fire...
在JavaScript的世界里,`getBoundingClientRect()` 是一个非常实用的DOM API,它可以帮助开发者获取到一个元素在浏览器视口中的几何信息。这个API返回一个对象,其中包含了元素的top、right、bottom、left、width和...
用于 getBoundingClientRect 的 jQuery 插件助手 安装 $ bower install jquery.bounds --save 用法 $ ( 'div.mynode' ) . bounds ( ) ; 这将返回一个具有以下属性的对象: { top : 100 , left : 100 , ...
`getBoundingClientRect()` 是JavaScript中一个非常实用的方法,用于获取页面元素在浏览器视口中的精确位置。这个方法返回一个`TextRectangle`对象,包含了四个整数属性:`top`、`left`、`right`和`bottom`,它们...
响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-3 第5章 HTML5 画布 getBoundingClientRect()