关于offsetTop与offsetHeight的区别以及使用方法

offsetTop和offsetHeight是设置一个元素的位置和获取圆度大小经常会使用的参数,下面具体讲一下他们的区别于联系:

例如obj为html的一个元素对象,

obj.offsetTop指的是obj距离上方或者父级元素(position非static)的位置,整型,单位像素。

obj.offsetHeight指obj自身的高度,整型,单位像素。

另外,还有scrollHeight与offsetHeight的区别

offsetHeight即是自身的高度,scrollHeight是自身的高度+隐藏元素的高度(即是内层元素的offsetHeight)。

由于这几个属性都是DOM对象,都需要限定针对的是某(第几)个元素进行操作的。

测试代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>offsetTop&&offsetHeight区别</title>
		<style>
			*{
				padding: 0px;
				margin: 0px;
			}
			.section1{
				width: 100%;
				height:100%;
				background: #eee;
				padding: 50px 0px;
				position: relative;
			}
			.box1{
				position: relative;
				width: 200px;
				height: 200px;
				text-align: center;
				background: lightcoral;
				margin: 0px auto;
			}
			.box2{
				position: relative;
				width: 200px;
				height: 80px;
				overflow: hidden;
				text-align: center;
				background: lightgreen;
				margin: 0px auto;
			}
			h3{
				line-height: 100px;
			}
		</style>
	</head>
	<body>
		<div class="section1">
			<div class="box1" id="box1">
				<h3>offset...区别</h3>
				<p id="txt1"></p>
			</div>
			<div class="box2" id="box2">
				<div style="width:50px;height:300px;background-color:#0000FF;" id="t">
					如果为 p 设置了 scrollTop,这些内容可能不会完全显示。</div>
			</div>
		</div>
		<!--javascript方法-->
		<script type="text/javascript">
			var oBox1=document.getElementById('box1');
			var oTxt1=document.getElementById('txt1');
			oTxt1.innerHTML="offsetHeight:"+oBox1.offsetHeight+" offsetTop:"+oBox1.offsetTop;
			var oBox2=document.getElementById('box2');
			oBox2.scrollTop=10;
			console.log('oBox2.scrollHeight:'+oBox2.scrollHeight);//300
			console.log('oBox2.offsetHeight:'+oBox2.offsetHeight);//80
		</script>
		<!--通过jquery方法书写-->
		<script src="js/jquery-1.11.1.min.js"></script>
		<script type="text/javascript">
			$(function(){
				//这些属性都是DOM对象,都需要限定针对的是某(第几)个元素
				console.log('jqyery 方法实现');
				console.log('box1 offsetHeight:'+$('.box1')[0].offsetHeight);
				console.log('box1 offsetTop:'+$('.box1')[0].offsetTop);
				console.log('box2 scrollTop:'+$('.box2').scrollTop());
				console.log('box2 scrollHeight:'+$('.box2')[0].scrollHeight);
				console.log('box2 offsetHeight:'+$('.box2')[0].offsetHeight);
			});
		</script>
	</body>
</html>
测试结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值