3 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊
我發(fā)現(xiàn)做這件事的唯一方法與你所描述的相似:
抓取當(dāng)前滾動位置(不要忘記水平軸!)
將溢出設(shè)置為隱藏(可能希望保留以前的溢出值)。
將文檔滾動到已存儲的滾動位置,并使用SCROLLTO()。
當(dāng)你準(zhǔn)備再次允許滾動時,撤銷所有這些。
編輯:沒有理由我不能給你代碼,因為我費(fèi)盡心思去挖掘它.
// lock scroll position, but retain settings for later
var scrollPosition = [
self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
];
var html = jQuery('html'); // it would make more sense to apply this to body, but IE7 won't have that
html.data('scroll-position', scrollPosition);
html.data('previous-overflow', html.css('overflow'));
html.css('overflow', 'hidden');
window.scrollTo(scrollPosition[0], scrollPosition[1]);
// un-lock scroll position
var html = jQuery('html');
var scrollPosition = html.data('scroll-position');
html.css('overflow', html.data('previous-overflow'));
window.scrollTo(scrollPosition[0], scrollPosition[1])

TA貢獻(xiàn)1757條經(jīng)驗 獲得超7個贊
$('#element').on('scroll touchmove mousewheel', function(e){ e.preventDefault(); e.stopPropagation(); return false;})
添加回答
舉報