我试图获取浏览器窗口中元素的屏幕坐标(即相对于屏幕的左上角)。很容易获取窗口的大小和位置(screenX,screenY),也很容易(使用 jQuery)获取元素的偏移量($('element').offset().left)。
但是,我需要知道从元素一直到屏幕一角有多少像素。我发现了一些似乎是 IE 特有的东西,但我希望它能在尽可能多的浏览器中工作。
Edited to add a picture:
window.screenX/Y
IE 不支持。但对于其他浏览器,位置的近似值是:
var top = $("#myelement").offset().top + window.screenY;
var left = $("#myelement").offset().left + window.screenX;
确切的位置取决于可见的工具栏。您可以使用outer/innerWidth
and outer/innerHeight
的属性window
物体接近一点。
IE 没有提供太多窗口属性,但奇怪的是,单击事件对象将为您提供单击的屏幕位置。所以我想你可以有一个校准页面,要求用户“单击红点”并处理事件
function calibrate(event){
var top = event.screenY;
var left = event.screenX;
}
或者可能使用mouseenter/leave
事件使用该事件的坐标进行校准。尽管你很难确定鼠标是从左、右、上还是下进入的。
当然,一旦他们移动屏幕,您就需要重新校准。
有关浏览器属性兼容性的更多信息,请参阅PPK 的对象模型表 http://www.quirksmode.org/dom/w3c_cssom.html#windowview.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)