position()与offset()区别

本文深入解析jQuery中的position()和offset()方法的使用,通过实例展示两者获取元素位置时的不同之处,包括相对位置的计算方式及在不同浏览器中的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点在于位置的相对点不同。

可以看看下边的图:

position()同offset()的区别

从图中我们可以大体看出两者的区别。position()获取相对于它最近的具有相对位置(position:relative)的父级元素的距离,如果找不到这样的元素,则返回相对于浏览器的距离。

offset()始终返回相对于浏览器文档的距离,它会忽略外层元素。

下边看个简单的例子,这里外层的div元素(position:relative)仅一个:

<div id="outer" style="width:200px;position:relative;left:100px;">
    <div id="inner" style="position:absolute;left:50px;top:60px;">           
    </div>
</div>
//获取相对于最近的父级(position:relative)的位置
var vposition = $("#inner").position();
alert(vposition.left);   //输出:50
alert(vposition.top);    //输出:60

var voffset = $("#inner").offset();
alert(voffset.left);   //输出:$("#outer").offset().left+50
alert(voffset.top);    //输出:$("#outer").offset().top+60

在不同浏览器中,offset()得到的相对于浏览器的位置不同,相信你看了上边相应的注释,已经掌握了position()同offset()方法的区别。

作者:jQuery学习
除非注明,jQuery学习网文章均为原创,转载时必须以链接形式标明本文地址。
本文地址:http://www.jquery001.com/position()-offset().html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值