我发现执行此操作的唯一方法与您所描述的类似:
- 抓住当前滚动位置(不要忘记水平轴!)。
- 将溢出设置为隐藏(可能要保留以前的溢出值)。
- 使用scrollTo()将文档滚动到存储的滚动位置。
然后,当您准备允许再次滚动时,请撤消所有操作。
编辑:自从我费劲去挖掘它以来,没有理由我不能给你代码…
// lock scroll position, but retain settings for latervar 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 thathtml.data('scroll-position', scrollPosition);html.data('previous-overflow', html.css('overflow'));html.css('overflow', 'hidden');window.scrollTo(scrollPosition[0], scrollPosition[1]);// un-lock scroll positionvar html = jQuery('html');var scrollPosition = html.data('scroll-position');html.css('overflow', html.data('previous-overflow'));window.scrollTo(scrollPosition[0], scrollPosition[1])


