我有一個要打開的模式對話框。當模式窗口打開時,我想禁用背景滾動。所以當對話框打開時,我已將overflow:hidden
添加到body
標籤。通過這樣做滾動條來去body
標籤,結果導致我的用戶界面一些混蛋。我知道這個混蛋會發生,因爲滾動條使用了保留的空間。是否有任何方法可以避免混亂,並且在對話框打開和關閉時禁用背景滾動。將隱藏更改爲自動溢出屬性時避免混亂
附上以下
var launch = document.getElementById('btn');
var dialog = document.getElementById('dialog');
var close = document.getElementById('close');
var body = document.querySelector('body');
launch.onclick = openModal;
close.onclick = closeModal;
function openModal(){
\t dialog.style.display = "block";
body.style.overflow = "hidden";
}
function closeModal(){
\t dialog.style.display = "none";
body.style.overflow = "auto";
}
body{
margin:0;
}
.overall{
height:1000px;
width:100%;
position:relative;
text-align:right;
padding: 0;
cursor:pointer;
}
.modal{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
background:#aaa;
border:1px solid #fdfdfd;
height:200px;
width:400px;
}
span{
text-align: right;
cursor: pointer;
width: 100%;
display: block;
text-align:right;
}
<div class="overall" id="btn">
click to launch modal
</div>
<div class="modal" id="dialog" style="display:none">
<span id="close"> close</span>
</div>
密切注意click to launch text
代碼就會有因上述問題挺舉
請參閱工作小提琴here
你爲什麼不使用引導模態它會幫助你,而wriitng很多CSS的,你必須寫那些已經存在於引導UI – mean
我通常不會相信在第三方控件。喜歡親自編寫代碼 –