我需要获得一个关于canvas元素相对于文档(而不是视口)的物理位置的引用。我的问题是,Chrome document.body.scrollTop
会返回正确的滚动位置,而FireFox document.documentElement.scrollTop
会返回正确的位置。很明显,Firefox只是使用不同的元素来计算滚动位置,但这真的很痛苦。
这似乎是一个常见的问题。有谁知道是否有办法强制兼容CSS规则?比如,强制滚动发生在身体或html元素上?我尝试过各种方式设置overflow
属性,但似乎并没有这样做。
我对JavaScript解决方案持开放态度,但我试图避免"如果firefox使用此值,否则如果chrome使用此值。" CSS会更好。
谢谢!
答案 0 :(得分:0)
你可以简单地说:
document.documentElement.scrollTop || document.body.scrollTop
在Chrome中,第一个表达式始终返回0
,然后采用第二个部分。
但是,在Firefox中,如果第一个表达式返回0
(页面顶部),则第二个表达式也会返回0
。
此解决方案也适用于其他主流浏览器。