$(function () {
var $overlay = $(".overlay");
var $obj = $(".obj");
$(".trig").click(function () {
$overlay.css("display", "block");
$obj.css("display", "block");
setTimeout(function () {
$overlay.addClass('in');
$obj.addClass('in');
}, 12);
var timeout = setTimeout(function () {
$overlay.removeClass('in');
$obj.removeClass('in').addClass('out');
setTimeout(function () {
$overlay.css("display", "none");
$obj.css("display", "none").removeClass('out');
}, 500);
}, 3000);
});
});
<div class="wrapper">
<button class="trig">push</button>
<div class="overlay fade"> <span class="obj"></span>
</div>
</div>
.overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
display: none;
overflow: auto;
overflow-y: scroll;
background: #ddd;
}
.fade {
opacity: 0;
-webkit-transition: opacity .15s linear;
transition: opacity .15s linear;
}
.fade.in {
opacity: 0.5;
}
.obj {
background:red;
height:50px;
width:50px;
position: absolute;
top: 0%;
left:50%;
margin-left:-25px;
z-index: 1050;
-moz-transition:all .5s ease-out;
-webkit-transition:all .5s ease-out;
-o-transition:all .5s ease-out;
transition:all .5s ease-out;
}
.obj.in {
top:50%;
margin-top:-25px;
}
.obj.out {
top:100%;
}