對於任何人誰遇到此問題使用Ariel Flesler的LocalScroll插件,Arief的回答如上所述,並且可以按以下方式應用:
$(document).ready(function() {
$.localScroll.defaults.axis = 'x';
$.localScroll({
target:'#content',
onAfter:function(){
var xPos = window.pageXOffset;
var $fixedElement = $('#menubar');
$fixedElement.css({ "position": "absolute" });
window.scroll(xPos,0);
$fixedElement.css({ "position": "fixed" });
}
});
});
在這種情況下,我有一個水平滾動的網站(因此默認爲'x'軸 - 你的可能會有所不同)。我正在滾動設置爲'overflow:hidden'(因此'target')的'#content'div。然後Arief的所有魔力都在'onAfter:function'中。
我調整了這個設置,以便不用'window.scroll(0,0)' - 可以滾動回頁面的最開始部分 - 它通過使用window.pageXOffset獲取當前窗口的滾動位置,並設置一個變量「xPos」(同樣,如果您在Y軸上滾動,或者兩者都是,則可能還需要使用window.pageYOffset)。這個變量然後在'window.scroll(xPos,0)'中使用 - 我的y軸上是「0」,因爲我不在那個軸上滾動。我相信可能有不同的方法來計算當前的滾動位置,但這對我來說最合適。
當我的'overflow:hidden'元素實際上是html標籤時,我最初無法做到這一點,因此將其移至'#content'div,它工作得很好。我一直在iPad 3上測試,所以不知道它是如何兼容的。
來源
2012-04-29 23:05:41
Tom
感謝您的回答。在尋找更優雅的東西之後,我嘗試將scrollTo應用於$('body')元素而不是封裝div。它運作良好... – scux 2012-02-27 10:49:59