我有一个水平滚动的div,里面有部分。我正在使用Ariel Flesler's scrollTo插件从一个部分滚动到另一个部分。
请参阅:http://jsfiddle.net/carienf/qZeEe/
小提琴在IE 9,Safari 5.1,Opera 11.5和Chrome 14(所有最新版本)中运行良好。我可以点击一个链接滚动到相应的部分,然后在其中滚动或鼠标滚动。
问题: 在Firefox 7(及更早版本)中,当我滚动到第2部分或第3部分然后使用滚动条向下滚动时,我的位置将重置为第一部分。当我调整浏览器窗口大小时也会发生这种情况。如果我使用鼠标滚轮滚动,Firefox表现出来(换句话说,我留在当前部分)。
我的问题几乎完全重复了这个问题:Problem mixing overflow-x, FireFox, and Javascript
只有,接受的答案(允许水平滚动条可见)对我的具体情况不起作用。此外,发布问题的人已经删除了他的例子。我真的需要滚动条保持隐藏状态,我真的不喜欢隐藏在div后面的想法。
有没有办法(除了设置溢出到“自动”)阻止Firefox重置我的滚动位置?或者其他一些隐藏滚动条的方法?
更新:将Firefox更新为8.0(仍为测试版),然后行为与其他浏览器保持一致。
答案 0 :(得分:0)
我可以看到几个选项。
答案 1 :(得分:0)
我刚遇到了同样的问题。当我的“模态窗口”弹出时,我设置html.noscroll { overflow: hidden }
,不幸的是导致窗口滚动到顶部。
这是我能做的唯一解决方案:
function RemoveScrollbar(html) {
var scrollTop = html.scrollTop;
html.addClass('noscroll');
html.scrollTop = scrollTop;
}
这是MooTools代码,但转换为jQuery或其他框架非常简单。