`
wxinpeng
  • 浏览: 589687 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

js.offsetParent属性

阅读更多

参考:

    offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素(在标准兼容模式下为html元素;在怪异呈现模式下为body元素)的引用。 当容器元素的style.display 被设置为 "none"时(译注:IE和Opera除外),offsetParent属性 返回 null。

 

句法:

parentObj = element.offsetParent

变量:

· parentObj 是一个元素的引用,当前元素的偏移量在其中计算。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" language="JavaScript">
	function offset_init() {
		var pElement = document.getElementById("sonObj");
		parentObj = pElement.offsetParent;
		alert(parentObj.tagName);
	}
</script>
</head>
<body onload="offset_init()">
<div id="parent">
<p id="sonObj">测试OffsetParent属性</p>
</div>
</body>
</html>

 

 

 

 测试结果:
       Firefox3:"BODY"
       Internet Explorer 7:"BODY"
      Opera 9.51:"BODY"
      Chrome 0.2:"BODY"
      Safari 3:"BODY
结论:
        当某个元素及其DOM结构层次中元素都未进行CSS定位时(absolute或者relative)[或者
某个元素进行CSS定位时而DOM结构层次中元素都未进行CSS定位时],则这个元素的offsetParent属性的取值为根元素。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为Body元素。(其实无论时标准兼容模式还是怪异模式,根元素都为Body元素)

 

 

 

 

测试代码2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
#parent {
	position: absolute; <!-- position:relative; -->
	left: 25px;
	top: 188px;
	border: 1px solid black;
}
</style>
<script type="text/javascript" language="JavaScript">
	function offset_init() {
		var pElement = document.getElementById("sonObj");
		parentObj = pElement.offsetParent;
		alert(parentObj.tagName);
	}
</script>
</head>
<body onload="offset_init()">
<div id="parent">div测试代码
<p id="sonObj">测试OffsetParent属性</p>
</div>
</body>
</html>

 

 

 

 

 测试结果:
         Firefox3:"DIV"
         Internet Explorer 7:"DIV"
        Opera 9.51:"DIV"
        Chrome 0.2:"DIV"
        Safari 3:"DIV"

结论:
      当某个元素的父元素进行了CSS定位时(absolute或者relative),则这个元素的offsetParent属性的取值为其父元素。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为其父元素

 

测试代码3

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
#Grandfather {
	position: relative;
	left: 25px;
	top: 188px;
	border: 1px solid black;
}
</style>
<script type="text/javascript" language="JavaScript">
	function offset_init() {
		var pElement = document.getElementById("sonObj");
		parentObj = pElement.offsetParent;
		alert(parentObj.tagName);
	}
</script>
</head>
<body onload="offset_init()">
<h1 id="Grandfather">
<div id="parent">
<p id="sonObj">测试OffsetParent属性</p>
</div>
</h1>
</body>
</html>

 

 

测试结果:
        Firefox3:"H1"
        Internet Explorer 7:"H1"
       Opera 9.51:"H1"
       Chrome 0.2:"H1"
       Safari 3:"H1"
结论:
         当某个元素及其父元素都未进行CSS定位时(absolute或者relative),则这个元素的offsetParent属性的取值为在DOM结构层次中距离其最近,并且已进行了CSS定位的元素。

 

分享到:
评论

相关推荐

    【JavaScript源代码】JavaScript offsetParent案例详解.docx

    ### JavaScript offsetParent 案例详解 #### 一、offsetParent 定义 在Web开发中,`offsetParent`是一个非常重要的属性,它用于获取一个元素的偏移父元素。根据定义,`offsetParent`指的是距离当前元素最近的进行...

    JS OffsetParent属性深入解析

    offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根...

    javascript获取对象的绝对坐标

    - 如果 `obj` 没有 `offsetParent` 但是存在 `x` 和 `y` 属性,则直接累加 `obj.x` 和 `obj.y`。 - 返回 `[curleft, curtop]` 数组,包含最终计算出的坐标。 ##### `findPosY` 函数 这个函数专门用于获取元素的 Y...

    获得对象的x,y位置

    1. **Offset Parent**:每个DOM元素都有一个`offsetParent`属性,它指向最近的一个设置了CSS定位(如`position: relative`、`position: absolute`等)的祖先元素。如果不存在这样的祖先元素,则`offsetParent`为`...

    js获得对象的x,y位置函数

    这里的`offsetParent`通常是指最近的带有定位(position)属性(除了static)的祖先元素。这两个属性返回的是像素值,可以用来计算元素的位置。 ### 知识点二:深入剖析findPosX和findPosY函数 #### `findPosX`...

    Javascript拖拽系列文章1之offsetParent属性第1/3页

    第一篇就先讲讲Javascript中的offsetParent属性吧。 支持的浏览器:Internet Explorer 4.0+,Mozilla 1.0+,Netscape 6.0+,Opera 7.0+,Safari 1.0+ element.offsetParent Summary offsetParent returns a ...

    js parentElement和offsetParent之间的区别

    里主要说的是 offsetParent 属性,这个属性在 MSDN 的文档中也没有解释清楚,这就让人更难理解这个属性。 这几天在网上找了些资料看看,再加上自己的一些测试,对此属性有了那么一点的了解,在这里总结一下。

    用css样式固定表头和列

    现代做法更倾向于使用JavaScript或CSS的`sticky`属性来实现固定效果。 - **`z-index`**: 在CSS中,`z-index`属性用于控制元素的堆叠顺序。在此处设置较高的`z-index`值,可以确保表头在其他元素之上显示,避免遮挡...

    JavaScript第九天.xmind

    js知识总结 MouseEvent属性: 1.clientX,clientY(点击位置距离当前body可视区域的x,y) 2.pageX,pageY(对于整个页面来说,包括被卷去的body部分的长度) 3.screenX,screenY(点击位置距离当前电脑屏幕的x,y坐标...

    Js Div属性大全

    在JavaScript中,我们可以通过各种属性来控制和操作Div元素,实现丰富的动态效果。以下是一些主要的Div属性及其详细说明: 1. accessKey:设置或获取对象的快捷键,使得用户可以通过键盘快速激活Div元素。 2. ...

    Gridview固定表头(JS方法)

    ### Gridview固定表头(JS方法) #### 概述 在Web开发中,尤其是在处理大量数据展示时,GridView 是一个非常实用的控件。当数据量较多时,用户需要滚动查看,这时候固定表头功能就显得尤为重要。固定表头可以让...

    详解 javascript中offsetleft属性的用法

    JavaScript中的offsetLeft属性是DOM元素的一个只读属性,它用来获取当前元素距离其最近的已定位(即position属性不是static的)父辈元素左边缘的距离。如果找不到已定位的父辈元素,那么它会返回元素距离整个文档...

    JavaScript经典代码大全收集.pdf

    这份文档《JavaScript经典代码大全收集.pdf》中展示了许多JavaScript的经典代码片段,这些片段涵盖了JavaScript在网页编程中的常见用途,包括操作DOM元素、事件处理、页面跳转、弹窗、焦点控制等多个方面。...

    js获取触发事件元素在整个网页中的绝对坐标(示例代码)

    它通过遍历元素及其所有父元素的`offsetParent`属性来计算总偏移量。`offsetLeft`和`offsetTop`分别表示元素相对于其最近的定位祖先元素的左侧和顶部距离。最终,将这些偏移量累加得到元素的绝对坐标。 复制代码 ...

    40种网页常用小技巧(javascript).doc

    根据给定文件的部分内容,我们可以总结出一系列与网页开发,特别是JavaScript相关的实用技巧。下面将对这些技巧进行详细的解释和扩展: ### 技巧1:屏蔽鼠标右键 使用`oncontextmenu`事件处理程序可以阻止用户在...

    js获取div的位置坐标

    此方法返回一个对象,该对象包含元素相对于视口的 top、right、bottom 和 left 属性。 ```javascript function getElementPos(elementId) { var el = document.getElementById(elementId); if (el.parentNode === ...

    js获取页面控件坐标.pdf

    该函数首先获取了一个元素的引用,然后使用 while 循环不断地获取该元素的 offsetLeft 和 offsetTop 属性,直到该元素的 offsetParent 属性为空为止。 在该函数中,我们使用了两个变量 w 和 h 来累加每个父元素的 ...

Global site tag (gtag.js) - Google Analytics