Firefox 上的 JQuery .position() 和 .offset() 错误
我有一个滚动 DIV,它通过 JQuery 确定中间的元素。我尝试过同时使用position()和offset()参数,在这两种情况下,Firefox都没有得到正确的答案,而Chrome和Safari却得到了正确的答案。
position().top 或 offset().top 确定中间元素相对于容器的位置。然而,Firefox 是从滚动容器中确定它的,因此在滚动过程中始终将第三个元素而不是中间元素向下放置。
这里有 2 个小提琴,一个使用 .position(),另一个使用 .offset()。
OFFSET() -- http://jsfiddle.net/pxfunc/XHPYF/7/ POSITION () -- http://jsfiddle.net/U4qyp/133/
任何人都知道为什么这种情况正在发生或如何解决?
I have a scrolling DIV that via JQuery determines the element in the middle. I have tried using both the position() and offset() parameters and in both cases Firefox does not get the right answer whilst Chrome and Safari do.
The position().top or offset().top determine the position of the middle element from the container. Yet firefox is determining it from the scrolling container and thus giving the third element down always rather than the middle element during scroll.
Here are 2 fiddles, one using .position() and the other .offset().
OFFSET() -- http://jsfiddle.net/pxfunc/XHPYF/7/
POSITION () -- http://jsfiddle.net/U4qyp/133/
Anyone have any idea why this is happening or how to fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您查看实际的 js 文件,就会发现根据浏览器的不同,滚动行为的处理方式也有所不同。对于 Firefox,它正在操作滚动元素的
-moz-transform
而不是其内部内容的位置。演示:http://jsfiddle.net/vQXqq/
jQuery
If you look at the actual js file, the scroll behaviour is handled differently depending on the browser. For Firefox, it is manipulating
-moz-transform
of the scroll element instead of the position of what's inside it.DEMO: http://jsfiddle.net/vQXqq/
jQuery