我的頁面上有2個固定位置的div,這個想法是當頁面滾動時它們的內容會滾動。但是,當使用Firefox時,當頁面上有很多其他DOM對象時,移動(特別是垂直)非常不穩定。在Chrome和IE7/8中性能很好。代碼如下所示 -在Firefox中生澀的jquery滾動運動
如果有人可以指出這可以優化或精簡的方式,我將不勝感激!
我綁定我的窗口滾動事件像這樣;
$(document).ready(function()
{
$(window).scroll(scrollMover);
});
凡滾動功能被定義爲
function scrollMover()
{
var offSets = getScrollXY();
document.getElementByID('divA').scrollLeft = offSets[0];
document.getElementByID('divB').scrollTop = offSets[1];
}
和
function getScrollXY()
{
var XOffset = 0, YOffset = 0;
if (typeof (window.pageYOffset) == 'number')
{
//Netscape compliant
YOffset = window.pageYOffset;
XOffset = window.pageXOffset;
} else if (document.body && (document.body.scrollLeft || document.body.scrollTop))
{
//DOM compliant
YOffset = document.body.scrollTop;
XOffset = document.body.scrollLeft;
} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
{
//IE6 standards compliant mode
YOffset = document.documentElement.scrollTop;
XOffset = document.documentElement.scrollLeft;
}
return [XOffset, YOffset];
}
這裏有一個Live Example不幸的是它是一個有點用處的頁面沒有滾動條! ;)
編輯:這是一個Updated Example,完成滾動條!友情提供fudgey。
我已經更新了演示(http://jsfiddle.net/Ss78Z/2/),添加了一個非常大的div,因此您現在可以滾動:P ...但是我看到您已經爲scrollMover函數中的頂部和側邊div,所以我看不到任何其他改進腳本的方式。 – Mottie 2010-06-25 13:24:52
@fudgey,感謝您的輸入,我不確定全局變量是不是一個好主意:)不可否認,這些內容在FF內部都是很奇怪的,但在其他瀏覽器中它的效果非常好! – RYFN 2010-06-25 13:41:39