如果存在滚动条,则打开AngularJS模式会导致页面移位

时间:2015-01-17 01:57:20

标签: css angularjs modal-dialog

我正在创建一个AngularJS模式,当我将鼠标悬停在菜单元素上时会弹出。 我遇到的问题是当前页面有一个滚动条时,模态导致主页面的滚动条消失,然后导致模态后面的背景向右移动,当模态关闭时,主体向左移动。

当模态打开时,它会添加类"模态打开"对身体。我可以添加"模态体"到我的页面的css文件,并将其定义为:

    .modal-open{
    margin-right:15px;
}

解决了这个问题,但仅适用于带滚动条的网页。如果页面没有滚动条,我使用此自定义"模态打开" css定义解决方案然后身体再次转移。

我的大多数网页都有滚动条,因此自定义"模态打开" css定义修复了我的大多数页面,但我认为这是一个小错误。

有没有人遇到过这个错误,如果有的话你是怎么解决的?

谢谢,

大卫

enter image description here

2 个答案:

答案 0 :(得分:1)

作为bug的修补程序,我只需在主体上放置一个垂直滚动条。即使页面不需要滚动,也会强制显示一个。我会喜欢更好的解决方案。

body{
overflow-y: scroll !important;

}

答案 1 :(得分:0)

这是一个bootstrap-modal的现有错误,这是我假设你正在使用的。 this thread

中提供了潜在的修复方法

例如,添加此css,或许可以尝试将其放在页面顶部的标记中,以便在修改文件之前查看它是否有效

.modal-open, .modal-open .navbar-fixed-top {
    margin-right: auto !important;
}