您的位置:首页> 前端教程> JS教程
文章导航

JavaScript offsetParent

2017-10-11 20:58| 作者: antzone| 查看: 5021| 评论: 0|来自: 蚂蚁部落

offsetParent可以返回一个元素对象,只读属性。

根据上下文条件的不同,返回的元素也会不同,区分如下:

(1).如果祖先元素中具有定位元素,此属性返回距离它最近的定位元素。

(2).如果祖先元素中没有定位元素,那么返回最近的table、td、th或者body元素。

此属性通常与offsetTop与offsetLeft属性配合使用。

语法结构:

[JavaScript] 纯文本查看 复制代码
element.offsetParent

浏览器支持:

(1).IE浏览器支持此属性。

(2).edge浏览器支持此属性。

(3).谷歌浏览器支持此属性。

(4).opera浏览器支持此属性。

(5).火狐浏览器支持此属性。

(6).safria浏览器支持此属性。

代码实例:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#box{width:300px;height:200px;position:relative;background:red;}
#middle{width:200px;height:100px;background:blue;}
#inner{width:50px;height:50px;background:green;line-height:50px;}
</style>
<script>
window.onload=function(){
  let inner=document.getElementById("inner");
  inner.innerHTML=inner.offsetParent.id;
}
</script>
</head>
<body>
<div id="box">
  <div id="middle">
    <div id="inner"></div>
  </div>
</div>
</body>
</html>

上述代码可以获取inner元素的offsetParent属性值。

代码分析如下:

(1).inner祖先元素中,box元素采用相对定位。

(2).那么inner的offsetParent属性返回值就是box元素。

(3).所以最终将box元素的id属性值写入inner元素。

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#box{width:300px;height:200px;background:red;}
#middle{width:200px;height:100px;background:blue;}
#inner{width:120px;height:50px;background:green;line-height:50px;}
</style>
<script>
window.onload=function(){
  let inner=document.getElementById("inner");
  inner.innerHTML=inner.offsetParent.id;
}
</script>
</head>
<body id="ant">
<div id="box">
  <div id="middle">
    <div id="inner"></div>
  </div>
</div>
</body>
</html>

在上面代码中,inner元素没有定位祖先元素。

所以inner的offsetParent属性返回值就是body元素,最终将body的id写入inner。

3

鲜花
1

握手

雷人

路过

鸡蛋

刚表态过的朋友 (4 人)

最新评论

返回顶部