javascript - 有没有办法让 Firefox 和 Chrome 滚动相同的元素?

标签 javascript css html

我需要获取我的 Canvas 元素相对于文档(而不是视口(viewport))的物理位置的引用。我的问题是在 Chrome 中 document.body.scrollTop 返回正确的滚动位置,在 FireFox 中 document.documentElement.scrollTop 返回正确的位置。显然 Firefox 只是使用不同的元素来计算滚动位置,但这真的很痛苦。

这似乎是一个常见问题。有谁知道是否有办法强制与 CSS 规则兼容?比如,强制滚动发生在 body 或 html 元素上?我已经尝试以各种方式设置 overflow 属性,但它似乎并没有这样做。

我对 JavaScript 解决方案持开放态度,但我试图避免“如果 firefox 使用这个值,否则如果 chrome 使用这个”。 CSS 会好得多。

谢谢!

最佳答案

你可以简单地:

document.documentElement.scrollTop || document.body.scrollTop

在 Chrome 中,第一个表达式总是返回 0 然后第二部分被采用。

但是,在 Firefox 中,如果第一个表达式返回 0(顶部页面),第二个表达式也返回 0

此解决方案也适用于其他主要浏览器。

关于javascript - 有没有办法让 Firefox 和 Chrome 滚动相同的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761497/

相关文章:

javascript - 如何检测 jQuery Mobile 中全屏工具栏的切换?

CSS 格式在 Visual Studio 2013 中不可用

css - :global (colon global) do? 是什么

html - 为除 div 边框以外的所有内容设置不透明度

html - 如何修复我的子菜单的对齐方式

javascript - 带有多个图标的 Google Maps API 标记

javascript - 使用 Dropzone.js 获取视频文件的持续时间

javascript - 通过任何网站插入对 Google+ 事件的评论

单击链接时 jQuery 切换图像

javascript - 如何使所有选择的元素加宽 15px?