Лучший способ для меня - определить модальный div, который по умолчанию имеет свойство display none.Затем вы можете отобразить с фиксированной позицией или абсолютной зависимостью позиции, которая вам нужна:
Если вы хотите охватить весь экран, ваша модальная позиция фиксирована, и вы можете поместить div в любом месте вашего кода.
Иначеесли вы хотите охватить только одну зону, поместите ваш модал в div, который вы хотите покрыть, и поместите родительский div с положением позиции.
<div id='mymodal'>
<div class='header'>
<div id='modalclose'>X</div>
</div>
<div class='content'>
</div>
</div>
И css:
#mymodal{
display: none;
position: fixed; /* Or absolute*/
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: 0;
}
#mymodal.active{
display: block;
z-index: 999;
}
Затем вам нужно только управлять классом и содержимым, например, с помощью jquery:
$(".sample").click(function(){
$("#mymodal .content").html('') //Clean html inside
$("#mymodal .content").html('<h1>Here fill for example title</h1>') //Inner html inside
$("#mymodal").addClass('active')
})
И для закрытия модального блока сделайте то же самое:
$("#modalClose").click(function(){
$("#mymodal").removeClass('active')
})
И это так!
Если вы хотите улучшить анимацию, измените display: none;
на opacity: 0
;и display:block;
для opactity: 1;
и добавьте transition: 1s;
в # mymodal
Надеюсь, это будет полезно!