有时在显示弹出窗口时我想从正文中删除滚动(将其设置为溢出到隐藏),问题在于,根据浏览器和操作系统,它可能有也可能没有永久滚动条(如最新版本的 IOS 和 Ubuntu 有在悬停时切换的滚动条)。
所以当我这样做时:
$('body').css('overflow','hidden');
内容可能会向右移动 X px,因为滚动条占用了视口的空间。为了解决这个问题,我想过这样做:
var width = $(window).width();
$('body').css('overflow','hidden');
var margin = $(window).width() - width;
$('html').css('margin-right',margin);
这似乎工作正常,因为它在滚动条的相同宽度的右侧添加了一个白条,但是如果页面上有固定元素(当滚动条被移除时它将向右移动),这将不起作用。
如何在删除滚动条的同时保持所有内容位置?