当我在页面中触发模态视图时,它会导致滚动条消失。 这是一个令人讨厌的效果,因为当模态视图移动/消失时,背景页面开始移动。 有没有办法解决这个问题?
当我在页面中触发模态视图时,它会导致滚动条消失。 这是一个令人讨厌的效果,因为当模态视图移动/消失时,背景页面开始移动。 有没有办法解决这个问题?
为了让PrimeNg用户能够在这里得到帮助,PrimeNg也做了同样的事情:
.p-overflow-hidden {
overflow: hidden;
}
modal
属性来关闭DynamicDialog
,如果这符合您的使用情况。否则,它需要与Bootstrap相同的修复。overflow-y-scroll
类添加到body即可解决。我自己也遇到了这个问题,很快找到了这个问题,帮助我理解了是什么原因导致了这种行为。所以谢谢。
然而,我觉得这些CSS解决方法有点不太优雅。除非你特别想保留滚动条(虽然我想不出为什么要这样做)。
基本上,Bootstrap会对某些元素应用padding-right来补偿移除滚动条的影响。
因此,你只需要在有问题的元素周围加一个额外的零padding-right的包装器(并将被定位的类移到它上面)。
即从这个...
<div class="fixed-top p-1 bg-dark">
...this content will move as padding will be modified...
</div>
...变成这样...
<div class="fixed-top p-0 bg-dark">
<div class="p-1">
...this content won't move...
</div>
</div>
这可能是由于第一个模态框(关闭时)从body元素中删除了modal-open类,而第二个模态框在触发modal-open时不会将其添加回来。
在这种情况下,我会使用事件来检查模态框是否已完全关闭/隐藏并打开另一个模态框。
let modal1 = $('.modal1);
let modal2 = $('.modal2);
$modal1.on('hidden.bs.modal', function (e) {
$modal2.modal('show');
});
这会等待第一个模态框关闭,以确保从 body 中移除 modal-open,然后在打开时重新添加它。
margin-left: -17px
。我的解决方案是为侧边栏添加 m-0
类。