JSFiddle - React, Tailwind, and code Playground
by Artur Stambultsian
HTML
<div id="body">
<div id="button">Открыть модальное окно</div>
<div id="bg"></div>
<div id="modal">
Обратно!
</div>
</div>
CSS
body, html {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
font-family: arial;
}
#body {
width: 100%;
height: 100%;
background: #ccc;
}
#bg {
position:fixed;
top: 0px;
left: 0px;
background: #000;
width: 100%;
height: 100%;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
opacity: 0;
z-index: 2000;
display: none;
}
#modal {
width: 200px;
height: 150px;
border: 10px solid #f00;
background: #faa;
position: absolute;
left: 50%;
top: 50%;
margin-left: -120px;
margin-top: -95px;
opacity: 0;
padding: 10px;
display: none;
z-index: 3000;
cursor: pointer;
}
#button {
padding: 10px;
cursor: pointer;
}
JavaScript
$('#button').click(function () {
$('#bg').css({display: 'block'});
$('#bg').animate({opacity: 0.5}, 300);
$('#modal').css({display: 'block'});
$('#modal').animate({opacity: 1}, 300);
});
$('#modal').click(function () {
$('#bg').animate({opacity: 0}, 300, function(){
$('#bg').css({display: 'none'});
});
$('#modal').animate({opacity: 0}, 300, function(){
$('#modal').css({display: 'none'});
});
});