我有一個模式對話框div,根據用戶點擊的內容可以包含不同大小的內容。確保Modal總是居中
如何確保它始終在窗口內水平居中,而不管模式內的內容大小,以及窗口大小?
這是我所擁有的jsFiddle。
HTML
<a href="#" onclick="openModal('asfghgggggggg');">Open Modal - smaller content</a>
<br />
<a href="#" onclick="openModal('a;lsdkjfa;ksdjhgfsakldjfhaksjdhfkasldjhf a sdlkfjhsa fg sdfghdsfgsdfgsdfgsdf g dsfgdsfgsdfgsdfgsdffgsdfgsdfgs dfg sdf g sdfg sdf g sdfg sdf g sd fgdsf g sdf g');">Open Modal - larger content</a>
<div id="emod">
<p><a href="#" onclick="closeModal();">close</a></p>
</div>
CSS
#emod
{
background-color: #fff;
display: none;
position: absolute;
top: 50%; left: 50%;
margin: -150px 0 0 -100px;
padding: 20px 100px 100px 100px;
z-index: 1000;
}
JS
function openModal(txt){
var modalContainer = document.getElementById('emod');
modalContainer.style.display = 'block';
modalContainer.innerHTML += txt;
}
function closeModal(){
var modalContainer = document.getElementById('emod');
modalContainer.style.display = 'none';
modalContainer.innerHTML ='<p><a href="#" onclick="closeModal();">close</a></p>';
}
我使用純JS此功能,但我們做負載的jQuery如果它更有意義,可以使用它。
這不處理您可能會scro在激活模態時,頁面有點變了...模態仍然出現在頂部而不是在視口中間 – GWR
我編輯了我的答案 – Nora