获取元素到页面的距离


<style type="text/css">
* {
margin: 0;
padding: 0;
}

.father {
width: 500px;
height: 500px;
background: pink;
margin: 100px auto;
padding-top: 1px;
position: relative;
}

.son {
width: 200px;
height: 200px;
background: deepskyblue;
margin: 20px auto;
position: absolute;
}

.f1,.f2{
position: relative;
margin: 100px auto;
}
</style>


<body>
<div class="f1">
<div class="f2">
<div class="f3">
<div class="father">
<div class="son"></div>
</div>


</div>
</div>
</div>

</body>


<script type="text/javascript">


//1.获取元素
var son = document.getElementsByClassName('son')[0];


//2.自定义函数获取元素到页面的距离
function offset(element) {

//3.1获取当前元素的offsetTop
var pos = {left:0,top:0};


//3.2获取元素有定位的父级的位置
var parents = element.offsetParent;

//3.3先加上自己的left  top
pos.left += element.offsetLeft;

pos.top += element.offsetTop;

while(parents && !/html|body/i.test(parents.tagName)) {

pos.top += parents.offsetTop;
pos.left += parents.offsetLeft;

parents = parents.offsetParent;

}

return pos

}


//4.执行函数 并且传递一个元素,帮我们计算元素到页面的位置
var obj = offset(son);

console.log(obj.top);
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值