js模态对话框插件rmodal.js

所属分类:UI-对话框,弹出层

 27072  308  查看评论 (6)
分享到微信朋友圈
X
js模态对话框插件rmodal.js ie兼容9

安装

可以通过npm或bower来安装rmodal.js插件。

npm install rmodal --save
bower install rmodal --save

使用方法

在页面中引入下面的CSS和js文件。

<link rel="stylesheet" href="css/bootstrap.min.css" />
<link rel="stylesheet" href="css/animate.css" type="text/css" />
<link rel="stylesheet" href="src/rmodal.css" type="text/css" />

HTML结构

使用一个下面的模板来创建一个模态对话框。

<div id="modal">
    <div>
        <div>
            <form method="get">
                <div>
                    <strong>Hello Dialog</strong>
                </div>
                <div>
                    Test Content
                </div>
                <div>
                    <button type="submit" onclick="modal.close();">
                           Close
                       </button>
                </div>
            </form>
        </div>
    </div>
</div>

创建一个按钮来触发模态窗口。

<a href="#" id="showModal" >Show modal</a>

初始化插件

最后通过下面的js代码来初始化该模态对话框插件。

window.onload = function() {
        var modal = new RModal(
            document.getElementById('modal')
            , options // 配置参数参考后面
        );

        document.addEventListener('keydown', function(ev) {
            modal.keydown(ev);
        }, false);

        document.getElementById('showModal')
        .addEventListener("click", function(ev) {
            ev.preventDefault();
            modal.open();
        }, false);

        window.modal = modal;
    }

配置参数

rmodal.js模态对话框插件的可用配置参数有:

{
     content: 'This may be used to override all of the dialog inner html'
     , closeTimeout: 500 // Time to wait (ms) before afterClose() is called
     /**
      * Callbacks
      */
     , beforeOpen: function(next) {
         console.log('I will execute right before the dialog is shown');
         next();
     }
     , afterOpen: function() {
         console.log('I will execute just after the dialog is shown');
     }
     , beforeClose: function(next) {
         console.log('I will execute right before the dialog is closed');
         next();
     }
     , afterClose: function() {
         console.log('I will execute just after the dialog is closed');
     }
     /**
      * Classes
      */
     // Added to body element clases while the modal is opened:
     , bodyClass: 'modal-open'
     // Always added to dialog element classes:
     , dialogClass: 'modal-dialog modal-dialog-lg'
     // Added to dialog element classes after it is opened:
     , dialogOpenClass: 'animated fadeIn'
     // Added to dialog element classes before it is closed:
     , dialogCloseClass: 'animated fadeOut'
     /**
      * Focus
      */
     // Set this to "false" to disable focus capture (tab/shift+tab):
     , focus: true
     // Set this to "false" to disable closing when escape key pressed:
     , escapeClose: true
}
  • content:对话框中的内容。

  • closeTimeout:在afterClose()方法被调用后多少秒钟关闭对话框。单位毫秒。

  • beforeOpen:模态窗口打开前的回调函数。

  • afterOpen:模态窗口打开后的回调函数。

  • beforeClose:模态窗口关闭前的回调函数。

  • afterClose:模态窗口关闭后的回调函数。

  • bodyClass:模态窗口body的class样式类。

  • dialogClass:添加到对话框上的class类。

  • dialogOpenClass:在模态窗口打开之后添加的class类。

  • dialogCloseClass:在模态窗口关闭之前添加的class类。

  • focus:设置为false时,不能使用tab键来获取焦点。

  • escapeClose:设置为false时,不能使用键盘的ESC键来关闭模态窗口。

相关插件-对话框,弹出层

讨论这个项目(6)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    生而不同 0
    2020/12/30 15:27:17
    关闭模态框的时候,为什么会带上输入值进行重定向了呢??? 回复
    躬自厚而薄责于人 0
    2020/4/1 20:31:28
    如何关闭动画效果,作者大大 回复
    躬自厚而薄责于人 0
    2020/4/1 20:30:59
    如何关闭动画效果 回复
    F U CK Y OU MAN 0
    2018/12/19 9:29:35
    请问一个页面可以做两个对话框么?window.modal只可以传一个对象啊? 回复
    F U CK Y OU MAN 0
    2018/12/18 10:03:53
    感觉还是蛮好得,谢谢作者 回复
    易大师er 0
    2018/12/13 15:28:09
    超长标题未处理,还有就是固定宽度不咋友好 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复