Dom关于位置和尺寸的api
parentNode 直接父级//和offsetParent不同
inner2.parentNode
<!DOCTYPE html>
<html id="html">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#inner2{
position: absolute;
}
#wrap{
position: relative;
}
</style>
</head>
<body id="body">
<div id="wrap">wrap
<div id="inner1">inner1
<div id="inner2">inner2</div>
</div>
</div>
</body>
<script type="text/javascript">
//hmtl css js
window.onload=function(){
//parentNode 直接父级
var inner2 = document.querySelector("#inner2");
console.log(inner2.parentNode.id);
} </script>
</html>
offsetParent
a.有点类型于css中包含块(css中的概念)的概念
b.offsetLeft 和 offsetTop都是参照于offsetParent的内边距边界
c.规则(html和body之间的margin被清除)
本身定位为fiexd,不管你父级有没有定位
存在兼容性问题
火狐的offsetParent --> body

非火狐offsetParent --> null

<!DOCTYPE html>
<html id="html">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#wrap{position: absolute;}
#inner1{position: fixed;}
#inner2{position: relative;}
#inner3{position: fixed;} </style>
</head>
<body id="body">
<div id="wrap">wrap
<div id="inner1">inner1
<div id="inner2">inner2
<div id="inner3"></div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
/*
ev||event
鼠标滚轮
事件绑定
offsetParent
1.父级是否有定位(4种)
2.本身是否有定位(4种)
3.浏览器不一样(5大pc浏览器+老祖宗(ie 6 7 8)) 4*4*8 = 128 本身定位为fixed
==> offsetParent:null(不是火狐)
==> offsetParent:body(火狐) 本身定位不为fixed
父级没有定位
==> offsetParent:body
父级有定位
==> offsetParent:定位父级
*/ window.onload=function(){
console.log(inner3.offsetParent)
}
</script>
</html>
测试代码
非fixed
父级没有定位
offsetParent --> body
父级有定位
offsetParent --> 定位父级
fixed 不管你有没有定位都根据body
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#wrap{position: absolute;}
#inner1{position: fixed;}
#inner2{position: relative;}
#inner3{position: fixed;} </style>
</head>
<body id="body">
<div id="wrap">wrap
<div id="inner1">inner1
<div id="inner2">inner2
<div id="inner3"></div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
/*
ev||event
鼠标滚轮
事件绑定
offsetParent
1.父级是否有定位(4种)
2.本身是否有定位(4种)
3.浏览器不一样(5大pc浏览器+老祖宗(ie 6 7 8)) 4*4*8 = 128 本身定位为fixed
==> offsetParent:null(不是火狐)
==> offsetParent:body(火狐) 本身定位不为fixed
父级没有定位
==> offsetParent:body
父级有定位
==> offsetParent:定位父级
*/ window.onload=function(){
console.log(inner3.offsetParent)
}
</script>
</html>
<!DOCTYPE html>
<html id="html">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css"> html,body{
height: %;
overflow: hidden;
} #wrap{position: absolute;background: pink;left: 100px;top: 50px;}
#inner1{position: fixed;background: deeppink;left: 50px;top: 150px;}
#inner2{position: relative;background: hotpink;left: 80px;top: 70px;}
#inner3{position: fixed;background: yellow;left: 60px;top: 30px;}
div{
width: 200px;
height: 200px;
padding: 50px;
border: 10px solid;
}
</style>
</head>
<body id="body">
<div id="wrap">wrap
<div id="inner1">inner1
<div id="inner2">inner2
<div id="inner3">inner3</div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
/*
*
ev||event
鼠标滚轮
事件绑定
offsetParent
1.父级是否有定位(4种)
2.本身是否有定位(4种)
3.浏览器不一样(5大pc浏览器+老祖宗(ie 6 7 8)) 4*4*8 = 128 本身定位为fixed
==> offsetParent:null(不是火狐)
offsetTop和offsetLeft也是参照于body的
==> offsetParent:body(火狐) 本身定位不为fixed
父级没有定位
==> offsetParent:body
父级有定位
==> offsetParent:定位父级
*/ window.onload=function(){
console.log(inner3.offsetTop,inner3.offsetLeft)
}
</script>
</html>
Dom关于位置和尺寸的api的更多相关文章
- 获取DOM元素位置和尺寸大小
JavaScript获取DOM元素位置和尺寸大小 在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽 ...
- JavaScript获取DOM元素位置和尺寸大小
在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScri ...
- JS中关于位置和尺寸的api
HTMLElement.offsetParent 由于offsetTop 和 offsetLeft 都是相对于 offsetParent 内边距边界的,故offsetParent的意义十分重大.off ...
- DOM元素的位置、尺寸及更多的信息
一.基本概念 document.documentElement是整个DOM树的根节点,对应的元素就是html.下面将其称作根元素或根节点. document.body,对应的元素是body 二.浏览器 ...
- Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
原文:Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题.位置.尺寸.最小化.可见性等各种状态 在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWi ...
- IOS中调整UI控件位置和尺寸
1.frame(修改位置和尺寸):以父控件左上角为坐标原点,在其父控件中的位置和尺寸. //frame属性中的坐标点不能直接修改 CGRect tempFrame = self.v.frame; // ...
- jQuery 学习笔记(4)(文本值相关方法、操控CSS方法、位置和尺寸方法)
1.文本值相关方法 .html() == .innerHTML $("div").html("<span> ...</span>") / ...
- jacascript DOM节点——节点获取与选择器API
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! DOM 操作必须等待 HTML 加载完毕之后,才可以获取节点:有两种方法: 把 script 标签放到代码 ...
- 根据经纬度获取位置描述:百度API与高德API的区别
百度API 使用百度坐标 1.访问方式一 http://api.map.baidu.com/geocoder/v2/?location=35.063592,118.38513&output=j ...
随机推荐
- nginx展示目录及美化
1.下载nginx 2.下载fancyindex git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex 3.下 ...
- 使用ProxyBroker构建代理池
import asyncio from proxybroker import Broker async def show(proxies): while True: proxy = await pro ...
- python列表中enumerate和zip函数用法
enumerate: 定义:enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标 例子: list1 =[89,98,00,75,6 ...
- 6-MySQL-Ubuntu-操作数据表的基本操作(一)
注: SQL语句的关键字不区分大小写,如select 和Select都可以 (1) 查看当前使用的数据库; select database(); (2) 使用某数据库或切换到某数据库 use 数据库名 ...
- Django(九) xadmin全局配置
xadmin的使用,首先需要对model进行注册,才能在后台管理中进行操作. 1.在app里创建py文件:adminx(必须这个名称) 2.导入xadmin和models里的类,格式如下: 其中lis ...
- Jmeter+ant
1.下载 ant,解压到非中文目录,并配置环境变量,不会的自行 google 2.将 jmeter 中 extras 子目录里的 ant-jmeter-1.1.1.jar 复制到 ant 中的 lib ...
- js drag drop 收藏夹拖拽移除的简单例子
代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...
- JQ基本
jQuery的入口函数: 特点:1. 等着DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完毕,jQuery帮我们完成了封装. 2. 相当于原生js中的DOMContentLoaded. ...
- 在IDEA中用Gradle构建项目时使用lombok以依赖出现出错
情景: 之情一直是使用Maven构建的项目并且导入依赖后都可以正常使用,但是在换成Gradle时出现了不论使用什么版本的lombok的依赖都会提示@Sl4j注解的log找不到,但是编辑界面是不会报错的 ...
- Android中的Service详解
今天我们就来介绍一下Android中的四大组件中的服务Service,说到Service, 它分为本地服务和远程服务:区分这两种服务就是看客户端和服务端是否在同一个进程中,本地服务是在同一进程中的,远 ...