Modern Dialog & Modal Plugin With jQuery And Dialog Element - Dialogify
File Size: | 160 KB |
---|---|
Views Total: | 8839 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
Dialogify is a jQuery plugin to create modern, customizable dialog/popup boxes and modal windows using the <dialog> element and HTMLDialogElement API.
How to use it:
1. Include the jQuery library, jQuery Dialogify plugin, and dialog-polyfill (OPTIONAL) on the webpage.
<link href="src/css/dialogify.css" rel="stylesheet"> <script src="/path/to/cdn/jquery.min.js"></script> <script src="src/js/dialogify.js"></script> <script src="src/js/dialog-polyfill.js"></script> <!-- OR -- > <script src="/path/to/cdn/jquery.min.js"></script></script> <script src="dist/dialogify.min.js"></script>
2. Create an alert popup box with a callback.
Dialogify.alert('Alert <i>HTML CONTENT</i>', { close: function(){ console.log('alert close'); } });
3. Create a confirmation dialog box with confirm/cancel callbacks.
Dialogify.confirm('Are You Sure?', { ok: function(){ // confirm callback }, cancel: function(){ // cancel callback } });
4. Create a prompt dialog.
Dialogify.prompt('What\'s your name ?', { placeholder: 'Enter your name', ok: function(val){ Dialogify.alert('Hi! ' + val); }, cancel: function(){ Dialogify.alert('canceled'); } });
5. Create a custom modal window from a JavaScript template.
<script type="text/template" id="template"> Modal Content Here </script>
new Dialogify('#template') .title('Dialogify') // dialog title .buttons([ // custom buttons { text: 'Cancel', click: function(e){ console.log('cancel click'); this.close(); } }, { text: 'Okey', type: Dialogify.BUTTON_PRIMARY, click: function(e){ console.log('ok click, title value: ' + this.$content.find('input.text-field').val()); } } ]) .show(); // shows the modal });
6. Create a custom modal window from HTML strings.
let html = 'modal content here'; let dialogify = new Dialogify(html) .title('Modal Dialogify') .buttons([ { type: Dialogify.BUTTON_DANGER, click: function(e){ console.log('danger-style button click'); this.close(); } }, '<a class="btn btn-insert" href="javascript:;">other action</a>' ], {position: Dialogify.BUTTON_CENTER}); dialogify.showModal();
7. Create a custom modal window that loads content from an external file.
var options = { ajaxPrefix: '', ajaxData: {var1: 'hello world'}, ajaxComplete: function(){ console.log('ajax complete'); this.buttons([{ type: Dialogify.BUTTON_PRIMARY }]); } }; new Dialogify('ajax.html', options) .title('Ajax Dialogify') .show();
8. Available event handlers.
dialogify .on('show', function(){ // on show }) .on('close', function(){ // on close }) .on('cancel', function(){ // on cancel });
9. Close all the dialogs.
Dialogify.closeAll()
10. All possible options.
let dialogify = new Dialogify(source, dialogOptions) .title(title) .buttons([button, buttonHtml...], buttonOptions) .on('show', showCallback) .on('close', closeCallback) .on('cancel', cancelCallback); dialogOptions = { // CSS class to adjust the size size: Dialogify.SIZE_LARGE | class name // is closable closable: true // modal mode modal: true, // makes the dialog fixed on the page fixed: true, // dialog styles dialog: { className: '', contentStyle: {}, // CSS styles here contentClassName: '' } // button styles closeButton: { image: '', // close icon style: {}, className: '' } // wrap the dialog in a form element useDialogForm: true, // ajax prefix ajaxPrefix: "ajax", // object | query string ajaxData: {}, // callback ajaxComplete: function() {}, } button: { type: Dialogify.BUTTON_PRIMARY ,// or Dialogify.BUTTON_DANGER | class name text: 'Close', click: function(){}, focused: false // auto focus disabled: false id: "" } buttonOptions = { position: Dialogify.BUTTON_CENTER // Dialogify.BUTTON_LEFT, or classname }
11. Global settings. Put the following JS snippets before you load the JavaScript.
window.dialogifyConfig = { locale: 'en_US' // 'zh_CN', 'zh_TW', dialog: dialogOptions, button: closeButtonOptions };
12. API methods.
myDialog.show(); myDialog.showModal(); myDialog.close(); myDialog.isOpen(); $content; $buttonList;
Changelog:
2021-01-06
- add dialogOptions in static dialog method
- change some styles
2020-06-09
- Update
2020-02-26
- improved styles
2020-02-21
- add dialog style options
- add close button style options
- fix blurry render in some browser
2019-05-17
- bugfix
2019-01-15
- add global config & closeAll static method
2018-10-18
- add close callback for alert dialogify
2018-08-24
- update dialog-polyfill.js
2018-08-16
- fixes iPad onsubmit issue
2018-07-09
- trigger cancel event on backdrop click
2018-07-08
- Fixed CSS
2018-07-06
- Fixed CSS
2018-07-05
- adjusts styles
2018-06-29
- rename button to $buttonList, add id mapping, fixes css
2018-06-27
- Fixed CSS
This awesome jQuery plugin is developed by OneupNetwork. For more Advanced Usages, please check the demo page or visit the official website.