jQuery中position()与offset()区别

泪湿孤枕 提交于 2020-03-16 10:52:08

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

可以看看下边的图:

 

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

<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

 技术交流QQ群:15129679

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!