我需要获取元素相对于屏幕或窗口左上角的点的位置(点(window.screenX,window.screenY)。

为什么?我需要桌面应用程序才能在该位置上绘制一些内容。我能够得到整个窗口和文档的正,但是我无法获得窗口顶部和文档顶部之间的偏移量。

如果用户已打开(例如,浏览器的调试控制台),则无法使用window.outerHeight - window.innerHeight

有什么想法吗?在SP上有一些关于它的文章,但是相对于文档的视图端口,它们都对我有用。

编辑:其他可能的解决方案是,获取文档的screenX / Y值

谢谢

最佳答案

如果您不反对使用插件,则jquery具有.position()方法,因此您可以对文档进行操作

更新的解决方案

// get element position relative to the document
var pos = $("#element").position();
var elePosX = pos.left;
var elePosY = pos.top;

// get window position relative to screen
var winPosX = window.screenX;
var winPosY = window.screenY;

// calculate the height of the navigation/toolbar
var navHeight = window.outerHeight - window.innerHeight;

// absolute x relative to the screens top left is the
//windows x position + the elements x position
var absX = winPosX + elePosX;

// absolute y relative to the screens top left is the
// windows y position + the height of the nav bar + the
// elements y position
var absY = winPosY + navHeight + elePosY;

// output values
console.log({"x": absX, "y": absY});

关于javascript - Javascript元素相对于屏幕的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29369696/

10-11 23:47