在JavaScript中进行同时需要clientXY和screenXY的计算时,这会带来问题。由于这两个值之间有一个边界,因此必须通过添加borderWidth来进行补偿。默认情况下,此边框为2px(除非修改页面)。
但是,由于主体也可以有用户定义的边框(如7px的纯红),因此不能仅仅通过添加或减去2px来进行补偿。显然,您需要使用实际值
document.body.currentStyle['borderTopWidth']
medium
. 因为价值
中等的
可能因浏览器版本而异,您需要执行getPixelValue检查(我使用:
http://blog.stchur.com/2006/09/20/converting-to-pixels-with-javascript/
).
中等的
回报
4px
. 但那不对!尸体的边缘实际上是
2px
,尽管它说
中等的
中等的
,修正为4px。由于某种原因,我撒谎了。
所以,我的问题是:有没有办法得到身体边界的真实价值?或者有没有办法检查用户是否已经设置了边框(因此不再是默认的2px)。执行用户更改的边框检查绝对是我最后的选择,因为IE可能会决定删除默认边框,从而破坏我的脚本。