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'});
    });
});