我需要确定HTML元素的确切屏幕坐标(相对于文档)。
我已经有了这样做的代码(将每个父对象的clientWidth和clientHeight相加到根目录),但是当jQuery的滚动效果开始工作时似乎无效。
我需要检测位置的元素实际上是div
overflow="hidden"
的一部分,用于jQuery滚动效果。
当我尝试使用当前代码获取元素的位置时,我得到一个相对于可滚动面板长度的宽度值。当我滚动面板时,位置保持不变(因此,我最终需要定位的工具提示位置太正确,位于容器面板溢出后面的锚控件的确切位置。< / p>
如何使当前代码适应此要求?
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return [curleft, curtop];
}
答案 0 :(得分:3)
使用jQuery的.offset()
函数。
答案 1 :(得分:1)
Matt指出,使用Frameworks功能是明智的,因为它是跨浏览器兼容的,并通过不同的版本修复了各种问题。
除此之外,我希望您在浏览器中将“屏幕”视为当前显示的文档,而不是实际的计算机屏幕/显示,因为这是不可能的。