Modern Clean Modal Window Plugin - jQuery Vintage Popup
| File Size: | 843 KB |
|---|---|
| Views Total: | 1631 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
Vintage Popup is a jQuery plugin for displaying responsive, highly customizable modal windows on the web app that supports both static and dynamic (AJAX) modal content.
More features:
- 2 built-in themes: Default and Material Design.
- Locks the page scroll when the modal is opened.
- Loads content from an external JSON file.
- Close on ESC/Resize/Bg Click.
- Callback functions.
- Custom trigger elements.
How to use it:
1. Install the Vintage Popup package.
# Yarn $ yarn add vintage-popup # NPM $ npm install vintage-popup --save
2. Load the core JavaScript and Stylesheet in the html document.
// ES6 import Popup from 'vintage-popup';
<!-- Browser --> <link href="dist/vintage-popup.min.css" rel="stylesheet"> <script src="/path/to/jquery.min.js"></script> <script src="dist/vintage-popup.min.js"></script>
<!-- Or from the CDN --> <link href="https://unpkg.com/vintage-popup@latest/dist/vintage-popup.min.css" rel="stylesheet"> <script src="/path/to/jquery.min.js"></script> <script src="https://unpkg.com/vintage-popup@latest/dist/vintage-popup.min.js"></script>
3. Load a theme CSS of your choice after the core stylesheet.
<!-- Default --> <link href="dist/popup-default-theme.min.css" rel="stylesheet"> <!-- Material Design Theme --> <link href="dist/popup-material-theme.min.css" rel="stylesheet">
<!-- Or from the CDN --> <link href="https://unpkg.com/vintage-popup@latest/dist/popup-default-theme.min.css" rel="stylesheet"> <script src="/path/to/jquery.min.js"></script> <script src="https://unpkg.com/vintage-popup@latest/dist/popup-material-theme.min.css"></script>
4. Create a trigger button to launch the modal.
<button id="trigger"> Launch The Modal </button>
5. Initialize the plugin on the trigger button.
$('#trigger').popup();
6. Display static content in the modal window.
<button id="trigger"
data-popup-target="demoPopup">
Launch The Modal
</button>
<div class="popup" tabindex="-1" role="dialog" data-popup-id="demoPopup">
<div class="popup__container">
<div class="popup__close"><span></span><span></span></div>
<div class="popup__content">
<div class="popup__title">Popup title</div>
<div class="popup__body">Popup body</div>
</div>
</div>
</div>
7. Load the modal content from a JSON file.
<button id="trigger"
data-popup-target="demoPopup"
data-popup-remote="/data.json">
Launch The Modal
</button>
<div class="popup" tabindex="-1" role="dialog" data-popup-id="demoPopup">
<div class="popup__container">
<div class="popup__close"><span></span><span></span></div>
<div class="popup__content"></div>
</div>
</div>
// data.json
{
"replaces": [
{
"what": "[data-popup-id='exampleRemote'] .popup__content",
"data": "<div class='popup__content'><div class='popup__title'>Popup title</div><div class='popup__body'>Popup body</div></div>"
}
]
}
8. Config the modal window with the following settings.
$('#trigger').popup({
openedClass : 'opened',
openedBodyClass : 'popup-opened',
closeBtnSelector : '.popup__close',
targetPopupId : $button.data('popup-target'),
eventsNameSpace : 'popup',
lockScreen : true,
lockScreenEl : document.body,
preventDefault : false,
closeOnBgClick : true,
closeOnEsc : true,
closeOnResize : false,
openOnClick : true,
/* AJAX options
* @param {String} [options.remote.url]
* @param {Function} [options.remote.onBeforeSend]
* @param {Function} [options.remote.onError]
* @param {Function} [options.remote.onComplete]
* @param {*} [options.remote.data]
*/
remote : { url: $button.data('popup-remote') },
});
9. Callback functions available.
$('#trigger').popup({
beforeOpen : null,
afterOpen : null,
beforeClose : null,
afterClose : null
});
10. Public methods.
// open the modal instance.open(); // close the modal instance.close(); // kill the modal instance.kill(); // open with remote data instance.open(ajaxResponse);
Changelog:
2021-11-07
- v0.2.2
2021-10-31
- v0.2.1
This awesome jQuery plugin is developed by Inspired-by-Boredom. For more Advanced Usages, please check the demo page or visit the official website.











