Kai*_*Kai 47 html javascript jquery position distance
如何使用jQuery找到html元素与浏览器(或窗口)一侧(左侧或顶部)之间的距离(以像素为单位)?
T.J*_*der 47
您可以使用该offset功能.它为您提供了相对于文档(左侧,顶部)的元素位置:
var offset = $("#target").offset();
display("span is at " + offset.left + "," + offset.top +
" of document");
Run Code Online (Sandbox Code Playgroud)
实例在我的浏览器中,该示例表明我们所针对的范围是文档的157,47(左侧,顶部).这是因为我在body元素上应用了一个很大的填充值,并使用了一个带有间隔符的跨度和它前面的一些文本.
这是第二个示例,显示文档顶部的绝对左侧的段落,显示0,0作为其位置(并且还显示稍后从左侧和顶部偏移的跨度,在我的浏览器上为129,19).
Sal*_*n A 33
jQuery.offset需要结合使用scrollTop,scrollLeft如下图所示:

演示:
function getViewportOffset($e) {
var $window = $(window),
scrollLeft = $window.scrollLeft(),
scrollTop = $window.scrollTop(),
offset = $e.offset();
return {
left: offset.left - scrollLeft,
top: offset.top - scrollTop
};
}
$(window).on("load scroll resize", function() {
var viewportOffset = getViewportOffset($("#element"));
$("#log").text("left: " + viewportOffset.left + ", top: " + viewportOffset.top);
});Run Code Online (Sandbox Code Playgroud)
body { margin: 0; padding: 0; width: 1600px; height: 2048px; background-color: #CCCCCC; }
#element { width: 384px; height: 384px; margin-top: 1088px; margin-left: 768px; background-color: #99CCFF; }
#log { position: fixed; left: 0; top: 0; font: medium monospace; background-color: #EEE8AA; }Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!-- scroll right and bottom to locate the blue square -->
<div id="element"></div>
<div id="log"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46270 次 |
| 最近记录: |