我在页面上有两个固定位置的div,其内容应当随着页面的滚动而滚动。然而,在Firefox中,当页面上有很多其他DOM对象时,移动(尤其是垂直移动)非常卡顿。在Chrome和IE7/8中性能良好。下面是代码 -
如果有人能指出如何优化或简化代码,我将不胜感激!
我绑定窗口滚动事件的方式如下:
滚动功能的定义如下:
如果有人能指出如何优化或简化代码,我将不胜感激!
我绑定窗口滚动事件的方式如下:
$(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];
}
这里有一个实时示例,不幸的是,该页面没有滚动条! ;)
编辑:这里有一个更新的示例,包含滚动条!由fudgey友情提供。