jQuery:position()和offset()之间的区别

position()和之间有什么区别offset()?我尝试在点击事件中执行以下操作:


console.info($(this).position(), $(this).offset());

它们似乎返回完全相同的...(点击的元素在表格的表格单元格内)


陪伴而非守候
浏览 471回答 3
3回答

慕田峪4524236

它们是否相同取决于背景。position返回相对于偏移父项的{left: x, top: y}对象offset返回相对于文档的{left: x, top: y}对象。显然,如果文档是偏移父代(通常是这种情况),则它们将是相同的。的偏移父是“最接近的定位含有元素”。例如,使用此文档:&nbsp;<div style="position: absolute; top: 200; left: 200;">&nbsp; &nbsp; &nbsp;<div id="sub"></div>&nbsp;</div>那$('#sub').offset() 将是{left: 200, top: 200},但.position()它将是{left: 0, top: 0}。

幕布斯6054654

这两个函数都返回一个具有两个属性的普通对象:width和height。offset()指的是相对于文档的位置。position()指的是相对于其父元素的位置但是当对象的css位置为“绝对”时,两个函数都将返回width = 0和height = 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery