3 回答

TA贡献1827条经验 获得超8个赞
我发现做这件事的唯一方法与你所描述的相似:
抓取当前滚动位置(不要忘记水平轴!)
将溢出设置为隐藏(可能希望保留以前的溢出值)。
将文档滚动到已存储的滚动位置,并使用SCROLLTO()。
当你准备再次允许滚动时,撤销所有这些。
编辑:没有理由我不能给你代码,因为我费尽心思去挖掘它.
// 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贡献1757条经验 获得超7个赞
$('#element').on('scroll touchmove mousewheel', function(e){ e.preventDefault(); e.stopPropagation(); return false;})
- 3 回答
- 0 关注
- 405 浏览
相关问题推荐
添加回答
举报