Cross-browser Modal Window With Semantic Template - jQuery Goodpopup
File Size: | 1.93 MB |
---|---|
Views Total: | 1748 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

Goodpopup is a lightweight and cross-browser jQuery popup plugin which lets you create easy-to-style modal windows with semantic templates based on the handlebars.js templating library.
Basic usage:
1. Load the necessary jQuery and handlebars.js (OPTIONAL) libraries in the html page.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js"></script>
2. Load the Goodpopup plugin's JavaScript and Stylesheet in the page.
<link href="jquery.goodpopup/css/style.min.css" rel="stylesheet"> <script src="jquery.goodpopup/js/script.min.js"></script>
3. Put your own templates (modal content) in the <script>
tag. You can pass the options to the modal windows using the data-OPTION
attributes as these:
<script id="demo-popup" type="text/x-handlebars-template"> <div class="popup"> <h1 class="popup__header">Popup Title</h1> </div> </script> <script id="demo-popup" type="text/x-handlebars-template" data-is-prerendered="true" data-is-outer-click-closing="false"> <img src="1.jpg" alt=""> </script> <script id="demo-popup" type="text/x-handlebars-template" data-is-prerendered="true" data-is-iframe="true" data-key-code-for-closing="false"> <iframe frameborder="0" allowtransparency="true" scrolling="no" src="1.html"></iframe> </script>
4. Or create the modal content in a DOM node (without the need of Handlebars.js).
<div class="template" id="demo-popup"> Modal Content here </div>
5. The JavaScript to launch the modal windows.
$.goodpopup.getPopup("demo-popup").open();
6. Override the default options to customize the modal windows.
const myPopup = $.goodpopup.getPopup("demo-popup") myPopup.setOptions({ // is pre-rendered isPrerendered: false, // content is an iframe isIframe: false, // saves the content when hidden isDetachable: false, // closes the modal by clicking outside isOuterClickClosing: true, // is full width isFullWidth: false, // shows close button hasCloseButton: true, // close the modal with ESC key keyCodeForClosing: [27], // forces closing forceClosing: { click: true, keydown: true, button: false }, // Handlebars allows you to use an object with data for additional flexibility when rendering a template data: {} })
7. Callback functions.
myPopup.setOptions({ callbackBeforeOpen: function() {}, callbackAfterOpen: function() {}, callbackBeforeClose: function() {}, callbackAfterClose: function() {}, })
8. API methods.
// open the modal myPopup.open() // close the modal myPopup.close(true) // detect if is rendered myPopup.isRendered() // detect if is hidden myPopup.isHidden() // set options myPopup.setOptions({}) // get options myPopup.getOptions() // get content from the modal myPopup.getPopupContent() // get modal ID myPopup.getPopupId()
Changelog:
2021-02-28
- 2.0.0-beta.20: Refactor
2018-08-15
- 2.0.0-beta.19: Refactor
This awesome jQuery plugin is developed by eugene-lazarev. For more Advanced Usages, please check the demo page or visit the official website.