被接受的答案在移动设备上不起作用(至少是iOS 7 w / Safari 7),我不希望MOAR JavaScript在我的网站上运行,而CSS会这样做。
此 CSS 将阻止后台页面在模式下滚动:
body.modal-open {
    overflow: hidden;
    position: fixed;
}
但是,它也有轻微的副作用,基本上滚动到顶部。 解决了这个问题,但重新引入了在移动设备上滚动的功能。position:absolute
如果您知道您的视口(我的插件用于将视口添加到<体>),您只需为.position
body.modal-open {
    // block scroll for mobile;
    // causes underlying page to jump to top;
    // prevents scrolling on all screens
    overflow: hidden;
    position: fixed;
}
body.viewport-lg {
    // block scroll for desktop;
    // will not jump to top;
    // will not prevent scroll on mobile
    position: absolute; 
}
我还添加了此功能,以防止底层页面在显示/隐藏模式时向左/向右跳转。
body {
    // STOP MOVING AROUND!
    overflow-x: hidden;
    overflow-y: scroll !important;
}
这个答案是一个x帖子。