传智博客
快捷导航
蚂蚁部落 网站首页 前端教程 JS教程 查看内容

栏目导航

≡基础知识≡

≡操作符≡

≡语句≡

≡函数≡

≡面向对象≡

≡对象≡

≡事件≡

≡事件对象≡

≡操作DOM方法≡

≡操作DOM属性≡

≡操作table表格≡

≡操作select控件≡

≡操作cookie≡

≡浏览器对象模型≡

≡进阶≡

JavaScript offsetTop

2017-8-24 20:47| 发布者: antzone| 查看: 3089| 评论: 2|来自: 蚂蚁部落

传智播客

offsetTop属性通常和offsetParent一起来使用的。

关于offsetParent的用法可以参阅JavaScript offsetParent一章节。

此属性返回表示当前元素上边缘距离offsetParent返回元素的距离的数值,单位是像素。

特别说明:offsetTop是只读属性。

语法结构:

[JavaScript] 纯文本查看 复制代码运行代码
obj.offsetTop

浏览器支持:

(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">
*{
  margin:0px;
  padding:0px;
}
body{
  padding:50px;
  margin:50px;
}
#main{
  width:300px;
  height:300px;
  background:red;
  margin:20px;
}
#box{
  width:200px;
  height:200px;
  background:blue;
}
#inner{
  width:50px;
  height:50px;
  background:green;
  text-align:center;
  line-height:50px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var inner=document.getElementById("inner");
  inner.innerHTML=inner.offsetTop;
}
</script>
</head>
<body id="thebody">
<div id="main">
  <div id="box">
    <div id="inner"></div>
  </div>
</div>
</body>
</html>

inner元素没有定位的父元素,所以offsetParent的返回值就是body对象,那么offsetTop返回的是inner元素距离文档顶部的距离,单位是像素。

特别注意:在IE7浏览器中,offsetParent的返回值是距离它最近的父元素,所以在IE7浏览器中返回0。

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

以上代码会将inner元素上边缘距离main元素内部的距离写入它本身,当然在IE7浏览器中是0。

2

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

发表评论

最新评论

引用 老汉 2017-12-8 11:48
这是最好的关于此属性的介绍,没有之一,良心
引用 野夏 2017-9-17 10:19
超棒 讲得好清楚

查看全部评论(2)

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-12-13 05:37 , Processed in 0.070128 second(s), 22 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部