【发布时间】:2017-09-16 05:25:40
【问题描述】:
我知道有 offSet().top;和位置().top;
但它们都不适用于我的情况。我必须计算从窗口顶部到绝对位置元素的距离。这些方法的问题是它们返回偏移量,不是从页面顶部,而是从包含绝对 DIV 的父元素。所以我需要跳过父容器,从页面顶部获取真正的偏移量。
一些想法?
谢谢
【问题讨论】:
我知道有 offSet().top;和位置().top;
但它们都不适用于我的情况。我必须计算从窗口顶部到绝对位置元素的距离。这些方法的问题是它们返回偏移量,不是从页面顶部,而是从包含绝对 DIV 的父元素。所以我需要跳过父容器,从页面顶部获取真正的偏移量。
一些想法?
谢谢
【问题讨论】:
我的错!
我是个白痴:-)
我混淆了代码并且没有更新我应该更新的内容。我最终使用了 .offset().top;它完全符合我的需要。
【讨论】:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>offset demo</title>
<style>
p {
margin-left: 10px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Hello</p>
<p>2nd Paragraph</p>
<script>
var p = $("p:last");
var offset = p.offset();
p.html("left: " + offset.left + ", top: " + offset.top);
</script>
</body>
</html>
来自jQuery .offset() documentation:
.offset()方法允许我们检索一个元素(特别是它的边框,不包括边距)相对于文档的当前位置。将此与.position()进行对比,后者检索相对于偏移父级的当前位置。当在现有元素之上放置新元素以进行全局操作(特别是实现拖放)时,.offset()更有用。
【讨论】: