rmodal.js带动画效果模态对话框插件

rmodal.js带动画效果模态对话框插件

rmodal.js是一款带动画效果的js模态对话框插件。rmodal.js模态对话框插件压缩版本仅1.2kb,没有任何外部依赖,可以制作出带动画特效的模态对话框效果。它的特点还有: 使用简单,执行效率高。 纯js编写,没有任何外部依赖。 支持包括IE9+的所有现代浏览器。 可以和bootstrap和animate.css结合使用。

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

1
2
npm install rmodal --save
bower install rmodal --save

使用方法
在页面中引入下面的CSS和js文件。

1
2
3
<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结构
使用一个下面的模板来创建一个模态对话框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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>

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;
    }

配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
}
当前内容只有登录了才能查看,如果您已经注册,请登录
3

发表评论