我发现执行此操作的唯一方法与您所描述的类似:
然后,当您准备允许再次滚动时,请撤消所有操作。
编辑:自从我费劲去挖掘它以来,没有理由我不能给你代码…
// 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])