offsetParent是个只读属性,返回最近显示指定位置的容器元素的引用。如果元素没有指定位置,最近的元素或者根元素(标准模式下是html,怪异模式下是body)就是offsetParent。当元素的style.display='none'时,offsetParent返回null。由于offsetTop和offsetLeft是相对于页边距,因此offsetParent是非常有用的。
    
浏览器兼容性
       在以WebKit为核心的浏览器上,如果元素是隐藏的(该元素或者上级元素style.display='none')或者元素自身style.position='fixed',那么就会返回null。
    在IE(9)上如元素style.position='fixed',该属性就会返回null。(然而display:none不影响这个浏览器)
<!DOCTYPE html>
<html>
<head><meta http-equiv="content-type" content="text/html;charset=UTF-8"/><title>offsetParent属性</title><style type="text/css">div {margin: 5px;}#div11 {border: 2px solid #0000ff;}#div21 {position: relative;border: 2px solid #ffff00;}#div30 {position: relative;border: 2px solid red;}#div31 {}</style><script type="text/javascript">function initPage() {getOffsetParent('div12'); //BODYgetOffsetParent('div22');//DIVgetOffsetParent('div32');//BODY}function getOffsetParent(id) {var divEl = document.getElementById(id);var el = divEl.offsetParent;console.log(el.nodeName);console.log('element id is ' + el.getAttribute('id') || '');}</script>
</head>
<body οnlοad="initPage()">
<div id="div11"><div id="div12">测试1</div>
</div>
<div id="div21"><div id="div22">测试2</div>
</div>
<div id="div30"><div id="div31"><div id="div32">测试3</div></div>
</div>
</body>
</html>

https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.offsetParent

js原生offsetParent解析相关推荐

  1. 狼叔直播 Reaction《学习指北:Node.js 2022 全解析》

    大家好,我是若川.持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan02 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...

  2. api怎么写_使用Node.js原生API写一个web服务器

    Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...

  3. JS原生Ajax和jQuery的Ajax与代码示例

    JS原生Ajax和jQuery的Ajax [学习目标] 1,了解JS原生Ajax原理 2,掌握json数据格式 掌握json数据格式方式 掌握json的解析方式 3,掌握jQuery中的Ajax封装 ...

  4. php 读取 js json格式数据,js读取和解析JSON数据的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  5. js简单遍历解析json字符串

    js简单遍历解析json字符串 前两天接触到前台的json字符串遍历拼接于是就翻了一些资料总结了一下遍历取值的方法,如有不对请指正,感谢阅读!! 先上json串 { "list": ...

  6. JS/JavaScript中解析JSON --- JSON.parse()、JSON.stringify()以及$.parseJSON()使用详解

    JS/JavaScript中解析JSON --- JSON.parse().JSON.stringify()以及$.parseJSON()使用详解 现在JSON格式在web开发中非常重要,特别是在使用 ...

  7. 【加强版】js原生实现拖拽效果,这次没有用document的mousedown、mousemove、mouseup事件我们来点实际的(但是有个弊端:拖拽过程中鼠标会变成一个禁用符号,不太友好)

    <div class='dragged'></div> //初始化需要拖拽的列initDrags() {var arr = document.querySelectorAll( ...

  8. 【墙裂推荐】【原生基础版】js原生实现拖拽效果,注意不要忘了div的cursor用grab和grabbing 还是古法炮制、传统工艺的原生代码兼容性最好,推荐

    以下方式的劣势就是在放弃拖拽那一刻会触发click事件,通常如果被拖拽元素还有其他点击事件,会重复触发,往往并非业务需求.优势就是-额-貌似这段代码没什么屌优势! <div class='dra ...

  9. 一段代码看出JS的的解析到执行的顺序规则

    一段代码看出JS的的解析到执行的顺序规则 代码 function bar(a, b) {b = 3;var b;function b(){}console.log(a); // 打印出:10conso ...

最新文章

  1. 看到一个flash做的超酷网站
  2. Silverlight3.0正式版(Silverlight3_Tools)离线安装手记
  3. C语言 匿名联合体和匿名结构体
  4. 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s
  5. NPOI office操作
  6. payara 创建 集群_Apache Payara:让我们加密
  7. android聚焦时如何给控件加边框,edittext设置获得焦点时的边框颜色
  8. 超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法
  9. Docker的安装及操作
  10. 【MySQL】MySQL STRAIGHT JOIN 使用案例以及简介
  11. 【Erlang新手成长日记】Erlang开源项目推荐
  12. Java彻底 - WEB容器的侦听具体解释 ServletContextListener
  13. flink 自定义 窗口_Flink源码分析: 窗口机制的执行流程
  14. Python 爬取多玩图库
  15. 计算机高级职称答辩ppt,专业技术职务任职资格评审答辩工程系列高级工程师PPT.pptx...
  16. matlab生成word文档
  17. css3图片放大溢出,用canvas调整图像大小 - css溢出问题
  18. 运算放大器(运放)介绍
  19. 这篇 ElasticSearch 详细使用教程,内部分享时被老大表扬了
  20. MySQL之库表设计篇:一到五范式、BC范式与反范式详解

热门文章

  1. 登录功能实现账号锁定
  2. 【Web技术】网站留言系统开发,及留言信息实时发送至指定邮箱
  3. 手把手教你搭建LAMP环境,运行第一个属于你的个人网站
  4. 【leetcode】108. 将有序数组转换为二叉搜索树
  5. 2020-10-7 CCNA学习笔记
  6. 《Leaflet 进阶知识点》- L.polygon 多边形绘制详解
  7. SEED-XDS560Plus Emulator for CCS3.3.82.exe 在硬盘上都安装了什么?
  8. 网络空间拟态防御CMD(Cyber Mimic Defense)
  9. Tableau疫情可视化
  10. 北大青鸟天府校区IT学习大揭秘