Simple Adaptive Modal Dialog Plugin With jQuery And CSS3
| File Size: | 2.19 KB |
|---|---|
| Views Total: | 2596 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A simple, responsive, adaptive jQuery modal & dialog component that uses CSS3 transitions and transforms to smoothly adjust the height & weight to fit within the viewport.
How to use it:
1. The html to create a dialog box with custom title, body and action button as follows:
<div class="dialog"> <span class="dialog__close">✕</span> <h2 class="dialog__title">Dialog Title</h2> <p class="dialog__content">Dialog Content</p> <button class="dialog__action">Action Button →</button> </div>
2. You might also need a trigger element to toggle the dialog.
<button class="dialog__trigger">Open Dialog</button>
3. The primary CSS styles for the dialog.
.dialog {
background: #f1f1f1;
width: 70%;
position: absolute;
left: calc(50% - 35%);
top: 0;
padding: 30px;
box-shadow: 0 10px 30px rgba(51, 51, 51, 0.4);
border: 3px solid #333333;
visibility: hidden;
opacity: 0;
-webkit-transition: all 180ms ease-in;
transition: all 180ms ease-in;
}
.dialog.dialog--active {
top: 10%;
visibility: visible;
opacity: 1;
-webkit-transition: all 250ms ease-out;
transition: all 250ms ease-out;
}
.dialog .dialog__close {
font-size: 2rem;
line-height: 2rem;
position: absolute;
right: 15px;
top: 15px;
cursor: pointer;
padding: 15px;
-webkit-transition: color 150ms ease;
transition: color 150ms ease;
}
.dialog .dialog__close:hover { color: #E74C3C; }
.dialog .dialog__title {
font-size: 2rem;
font-weight: 100;
margin: 0;
padding: 0 0 15px 0;
border-bottom: 2px solid #333333;
}
.dialog .dialog__content {
font-size: 1.1rem;
line-height: 2rem;
}
.dialog .dialog__action {
margin: 0;
font-size: 1rem;
}
4. Make the dialog responsive by adding the following CSS snippets into media queries.
@media (max-width: 600px) {
.dialog {
width: 90%;
left: calc(50% - 45%);
}
}
5. Place the latest version of jQuery JavaScript library at the end of the document.
<script src="//code.jquery.com/jquery-3.0.0.min.js"></script>
6. The core JavaScript.
function dialog() {
var dialogBox = $('.dialog'),
dialogTrigger = $('.dialog__trigger'),
dialogClose = $('.dialog__close'),
dialogTitle = $('.dialog__title'),
dialogContent = $('.dialog__content'),
dialogAction = $('.dialog__action');
// Open the dialog
dialogTrigger.on('click', function(e) {
dialogBox.toggleClass('dialog--active');
e.stopPropagation()
});
// Close the dialog - click close button
dialogClose.on('click', function() {
dialogBox.removeClass('dialog--active');
});
// Close the dialog - press escape key // key#27
$(document).keyup(function(e) {
if (e.keyCode === 27) {
dialogBox.removeClass('dialog--active');
}
});
// Close dialog - click outside
$(document).on("click", function(e) {
if ($(e.target).is(dialogBox) === false &&
$(e.target).is(dialogTitle) === false &&
$(e.target).is(dialogContent) === false &&
$(e.target).is(dialogAction) === false) {
dialogBox.removeClass("dialog--active");
}
});
};
// Run function when the document has loaded
$(dialog);
This awesome jQuery plugin is developed by triss90. For more Advanced Usages, please check the demo page or visit the official website.











