Awesome Swing Out Modal with jQuery and CSS3
| File Size: | 4.85 KB |
|---|---|
| Views Total: | 4830 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
This is jQuery & CSS3 based modal component that helps you create a beautiful, responsive modal popup with an awesome swing out animation when triggered.
How to use it:
1. Include the Font Awesome 4 for modal close icon (OPTIONAL).
<link rel="stylesheet" href="font-awesome.min.css">
2. Create the modal with a trigger button on the webpage.
<div class="container">
<div class="btn open">
Lanuch a modal
</div>
<div class="circle"></div>
<div class="modal">
<div class="modal-container">
<div class="title">
Modal Title
<i class="fa fa-times close"></i>
</div>
<div class="modal-content">
Modal Content
</div>
<div class="btn close">
Close the modal
</div>
</div>
</div>
</div>
3. Style the modal.
.btn.open, .modal .btn.close, .circle, .modal {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.modal {
background: #ECECEC;
border-radius: 3px;
box-shadow: 0 8px 0 0 #bebebe;
padding: 0;
}
.modal .title {
color: #4E9CFF;
font-size: 28px;
font-weight: bold;
margin-top: -5px;
padding: 10px 15px 10px 20px;
border-bottom: 5px solid #4E9CFF;
margin: -15px -20px 12px;
}
.modal .title i {
float: right;
color: #1e1e1e;
opacity: .3;
transition: all .2s ease;
cursor: pointer;
}
.modal .title i:hover { opacity: .5; }
.modal .modal-content {
float: none;
clear: both;
font-size: 16px;
}
.modal .modal-content { line-height: 1.3; }
.modal .btn.close {
top: 78%;
height: 50px;
padding: 15.5px;
font-size: 24px;
background: #6dadff;
box-shadow: 0 8px 0 0 #4E9CFF;
cursor: pointer;
transition: all .3s ease;
}
.modal .btn.close:hover {
box-shadow: 0 5px 0 0 #4496ff;
margin-top: 3px;
}
.modal .btn.close:active {
box-shadow: 0 0 0 0 #2f8bff;
margin-top: 8px;
}
.modal-container { display: none; }
4. Create the modal swing out animation using CSS3 transitions and @keyframes.
.circle {
border-radius: 100%;
height: 2px;
width: 2px;
background: #F47265;
opacity: .3;
z-index: 2;
transition: all .8s ease;
}
.in { animation: in 1s ease; }
.out { animation: out 1s ease; }
@keyframes
in { 0% {
height: 0;
width: 0;
z-index: 0;
}
30% {
top: 20%;
z-index: 0;
}
60% {
z-index: 1000;
}
100% {
top: 50%;
z-index: 1000;
height: 250px;
width: 550px;
}
}
@keyframes
out { 0% {
top: 50%;
z-index: 1000;
height: 250px;
width: 550px;
}
30% {
top: 80%;
z-index: 1000;
padding: 0;
}
60% {
z-index: 0;
}
90%, 100% {
height: 0;
width: 0;
z-index: 0;
}
}
.circle-active {
height: 700px;
width: 700px;
opacity: 0;
}
.circle-hide { opacity: 0 !important; }
5. Make sure you have jQuery library loaded in the webpage.
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
6. A little jQuery script to help out with clicked states.
$( ".open" ).click(function() {
$(".modal").removeClass("out");
$(".modal").addClass("in");
setTimeout(function() {
$(".modal").css("z-index", "1000");
$(".modal").css("height", "250px");
$(".modal").css("width", "550px");
$(".modal").css("padding", "20px");
}, 700);
setTimeout(function() {
$(".modal-container").fadeIn("slow");
}, 900);
$(".circle").addClass("circle-active");
setTimeout(function() {
$(".circle").removeClass("circle-active");
$(".circle").addClass("circle-hide");
}, 800);
});
$( ".close" ).click(function() {
$(".modal-container").fadeOut("fast");
$(".circle").removeClass("circle-hide");
setTimeout(function() {
$(".modal").removeClass("in");
$(".modal").addClass("out");
}, 150);
setTimeout(function() {
$(".modal").css("z-index", "0");
$(".modal").css("height", "0");
$(".modal").css("width", "0");
$(".modal").css("padding", "0");
}, 150);
});
This awesome jQuery plugin is developed by MichaelRyanSmith. For more Advanced Usages, please check the demo page or visit the official website.











