是的,当我今天在 iphone 6s 上遇到这个问题时,这非常烦人。
这似乎仍然是一个问题,即使使用最新的引导程序(目前为 3.3.6)。
CSS Quickfix解决方案:
body.modal-open { position: fixed; }
“请注意,当模式打开时,这会产生“滚动”到页面顶部的副作用。”
查看有关此解决方案的更多详细信息here
Javascript/jQuery解决方案:
更好的解决方案是使用bootstrap's modal events。此解决方案集成了 quickfix 方法,但修复了“页面顶部”问题。
然后,您可以根据事件根据需要更改 css。
在下面的代码中,我在事件show.bs.modal 上设置了窗口的当前位置(该值用于修复“快速修复”问题)。
然后我对shown.bs.modal 事件应用css 快速修复。换句话说,在模态弹出之后。
最后,当模态框关闭时,我将主体的位置切换到相对位置(我相信也可以设置为静态)并将窗口滚动回原来的位置。
// set current position
var cPosition = false;
$('.modal').on('show.bs.modal', function(){
cPosition = $(window).scrollTop();
})
.on('shown.bs.modal', function(){
$('body').css({
position:'fixed'
});
})
.on('hide.bs.modal', function(){
$('body').css({
position:'relative'
});
window.scrollTo(0, cPosition);
});
对于任何有 javascript 经验的人来说,设置应该相对简单。
希望他们能在 bootstrap 4 中解决这个问题,但在那之前,希望这个答案能帮助其他有类似问题的人。