当溢出被“隐藏”时停止Firefox重置水平滚动位置?
我有一个水平滚动div部分里面。我正在使用Ariel Flesler's scrollTo插件从一个部分滚动到另一个部分。当溢出被“隐藏”时停止Firefox重置水平滚动位置?
请参阅:http://jsfiddle.net/carienf/qZeEe/
小提琴完美的作品在IE 9,Safari浏览器5.1,歌剧11.5和Chrome 14(所有的最新版本)。我可以点击一个链接滚动到相应的部分并滚动或滚动鼠标滚轮。
问题: 在Firefox 7(或更早),当我已经滚动到第2或第3节,然后使用滚动条,我的位置复位到所述第一部分向下滚动。调整浏览器窗口大小时也会发生这种情况。如果我使用鼠标滚轮滚动,Firefox的行为(换句话说,我留在当前部分)。
我的问题是相当多的这个问题的确切重复:Problem mixing overflow-x, FireFox, and Javascript
只,公认的答案(这是允许的水平滚动条是可见的),我的具体情况下不能正常工作。此外,发布该问题的人已经删除了他的例子。我真的需要该滚动条保持隐藏状态,我真的不喜欢将它隐藏在div后面的想法。
有没有办法(除了设置溢出为“自动”)停止Firefox重置我的滚动位置?或者其他方式来隐藏滚动条?
UPDATE:将Firefox更新为8.0(仍为测试版),然后其行为与其他浏览器一致。
我可以看到几个选项。
- 剪掉滚动条。采取一些措施,你必须绝对定位。
- 在垂直滚动之外添加第二个div。这违反了目前的代码,但它确实解决了滚动问题。 jsfiddle.net/s2YFM
我刚碰到同样的问题。当我的“模式窗口”弹出时,我设置了html.noscroll { overflow: hidden }
,这不幸导致窗口滚动到顶部。
这里是唯一的解决办法,我可以做的工作:
function RemoveScrollbar(html) {
var scrollTop = html.scrollTop;
html.addClass('noscroll');
html.scrollTop = scrollTop;
}
这是MooTools的代码,但超级简单转换为jQuery的或其他框架。
我在Chrome 14中查看了您的示例,并且位置也滚动回顶端(如FF)。 –
我可以看到几个选项。 1.剪下滚动条。采取一些措施,你必须绝对定位。 2.在垂直滚动之外添加第二个div。这违反了目前的代码,但它确实解决了滚动问题。 http://jsfiddle.net/s2YFM/ – Hemlock
@vantrung -cuncon。我不确定你是什么意思。你说:“...在Chrome 14中,位置滚动回顶端......”。你是指垂直滚动吗? Chrome 14何时滚动到“顶部”?我已经在Chrome 14中测试了小提琴,它的行为正确。我的问题是当我处于第2节或第3节时,我的* horizontal *位置重置为第一部分,然后在FF中使用滚动条。在Chrome 14中,我的水平位置仅在单击部分链接之一时发生变化,这是所需的行为。 – cfouche