参考:

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

句法:

parentObj = element.offsetParent

变量:

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

测试代码1:

<!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

结论:

当某个元素及其父元素都未进行CSS定位时,则这个元素的offsetParent属性的取值为根元素。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为Body元素。(其实无论时标准兼容模式还是怪异模式,根元素都为Body元素)

测试代码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定位的元素。

测试代码4:

<!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">

#sonObj{

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:"BODY"

Internet Explorer 7:"BODY"

Opera 9.51:"BODY"

Chrome 0.2:"BODY"

Safari 3:"BODY"

结论:

当只有某个元素进行了CSS定位,其父元素及其DOM结构层次上都未进行CSS定位时,则这个元素的offsetParent属性的取值为HTMLBODYElement。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为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等)的参照物为其父元素。

js.offsetParent属性相关推荐

  1. JS OffsetParent属性深入解析

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

  2. JS OffsetParent属性

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

  3. JS常用属性方法大全

    JS常用属性方法大全 1.输出语句:document.write(""); 2.JS中的注释为: 3.传统的HTML文档顺序是:document->html->(hea ...

  4. Js 字符串属性及方法

    Js 字符串属性及方法 本文记录下字符串相关属性及方法,参考文档 MDM String. 一.语法: 'hello world' "hello world" "中文&qu ...

  5. JS元素属性操作方法,包括获取属性,修改属性,删除属性

    JS元素属性操作方法,包括获取属性,修改属性,删除属性 本篇记录JS元素属性的操作的方法.其中包含获取属性两个方法,修改属性两个方法,删除属性一个方法 获取属性 element.属性 该方法通常获取自 ...

  6. js第一节-js的属性操作

    js第一节-js的属性操作     今天我们第一节的内容主要跟大家聊聊js的属性操作,那么什么是属性呢?属性就是对于一个事物的描述,比如一个元素它的id,它的value值等.每个元素都有其自己本有的属 ...

  7. node.js 静态属性_如何使用静态站点和Node.js开发和部署第一个全栈式Web应用程序

    node.js 静态属性 This tutorial will show you how to convert a static website that uses HTML, CSS and Jav ...

  8. js基础总结——js 获取元素节点、js 绑定onclick事件、js 获取属性 修改属性值、js 获取子元素、js 改变css样式

    参考书籍:<JavaScript DOM编程艺术 第2版> 本博客代码的测试页面是:https://www.layui.com/ js dom操作 js 获取元素节点 一份document ...

  9. php json 遍历 keys,详解javascript遍历json对象的key和任意js对象属性的示例代码(图)...

    下面小编就为大家带来一篇javascript遍历json对象的key和任意js对象属性实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 使用 keys 方法获取该对象 ...

最新文章

  1. MySQL性能优化笔记整理
  2. node:ORM、数据模型、脚本创建模型与服务层
  3. java实现周期任务_java定时任务的实现方式
  4. 打包jar文件 外部调用资源 so等
  5. DOM技术对xml增删改查后更新源文件异常报错
  6. 安卓期末作品小项目_学在澎雅 | 探索红叶李,闯关我最棒——杭州市澎雅小学二年级期末游园活动...
  7. (转载)黑白帽子思路
  8. 虹膜数据集_虹膜数据集的聚类分析
  9. oracle 更改归档位置,oracle更改归档路径
  10. Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等
  11. 常见的性能测试类型有那些?
  12. 多套知识付费平台源码亲测在用+数据库+一键更新?功能
  13. 使用绝对定位来实现拉手网上的效果
  14. 2022爱分析· 隐私计算厂商全景报告 | 爱分析报告
  15. LINQ之Update
  16. Python设计一个学生类
  17. css样式文件的引入方式
  18. Django部署uwsgi
  19. opencc在linux环境中,android-opencc,中文简繁转换项目OpenCC的安卓版
  20. 如何解决“无法手动启动VMware Tools安装”问题(转)

热门文章

  1. 《阿凡达2》上映在即,3D渲染如何突破想象?
  2. STM32驱动MPU6050基于IIC协议
  3. docker基础——Docker是什么
  4. 蓝桥杯:试题 算法训练 采油区域 矩阵前缀和+动态规划+分治+枚举
  5. 系统集成特一级资质标准
  6. copy-to-clipboard 的拷贝使用
  7. 贝叶斯分析助你成为优秀的调参侠:自动化搜索物理模型的参数空间
  8. 南京工业大学校园网(智慧南工)自动登录
  9. 导数的奇偶性(含证明)
  10. 网络舆情数据挖掘分析的三点方法和建议