我有一个带有垂直滚动的div
元素。它有span
个元素,里面有文字。如何获取这些span
元素的坐标。但是我不希望它相对于滚动位置。
例如,在div
中,假设它的宽度为400像素,高度为1000像素(但视图高度为500像素),并且其垂直向中间滚动。然后在视图的中心,我看到一个文本,如果我点击它,我想要坐标像(200,250)
如何获得div
容器绝对的坐标?
答案 0 :(得分:0)
使用element.getBoundingClientRect? (如果您希望它相对于容器,请减去容器的顶部。)
function client() {
alert(document.getElementById('child').getBoundingClientRect().top);
}
function local() {
var container = document.getElementById('container');
var containerRect = container.getBoundingClientRect();
var child = document.getElementById('child');
var childRect = child.getBoundingClientRect();
localTop = childRect.top - containerRect.top;
alert(localTop);
}

#container {
height: 100px;
overflow:scroll;
border:1px solid red;
margin-top:100px;
}
#child {
background: yellow;
}

<div id="container">
<div>Test</div>
<div>Test</div><div>Test</div><div>Test</div><div>Test</div>
<div id="child">Item of interest</div>
<div>Test</div><div>Test</div><div>Test</div><div>Test</div>
</div>
<button onclick="client()">Global top</button>
<button onclick="local()">Local top</button>
&#13;
答案 1 :(得分:0)
假设可滚动div的id为'myDiv',div中的一个元素的id为'element1'。要在javascript中找到真正的“顶级”值,请尝试以下方法:
alert($('myDiv').css('top') + $('element1').css('top'));