您现在的位置:首页 >> 前端 >> 内容

BootStrapmodal实现模态弹窗代码教程

时间:2017/11/27 15:28:11 点击:

  核心提示:默认的model案例:span style=font-family:Comic Sans MS;font-size:18px;!DOCTYPE htmlhtml lang=zh-CNheadmeta ...

默认的model案例:

<span style="font-family:Comic Sans MS;font-size:18px;">  
<!DOCTYPE html>    
<html lang="zh-CN">    
<head>    
    <meta charset="utf-8">    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">    
    <meta name="viewport" content="width=device-width, initial-scale=1">    
    <title>Bootstrap Modal</title>    
    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">    
</head>    
<body>    
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">    
    Launch demo modal    
</button>    
    
<p class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">    
    <p class="modal-dialog" role="document">    
        <p class="modal-content">    
            <p class="modal-header">    
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">    
                    <span aria-hidden="true">×</span>    
                </button>    
                <h4 class="modal-title" id="myModalLabel">Modal title</h4>    
            </p>    
            <p class="modal-body">    
                <p>One fine body…</p>    
            </p>    
            <p class="modal-footer">    
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>    
                <button type="button" class="btn btn-primary">Save</button>    
            </p>    
        </p>    
    </p>    
</p>    
    
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>    
<script src="http://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>    
</body>    
</html>    
</span>  

一.model打开

1、静态打开:通过data属性打开隐藏模态框

设置按钮button的data-toggle:"modal"(以模态框的形式打开),data-target:"#myModal"(设置为modal的id)

2、动态打开:以jquery代码为例

$("#myModal").modal("toggle");

二.model的设置

1.通过modal-sm和modal-lg改变弹窗的大小,这两个class要设置在modal-dialog那一层

2.modal-header中的关闭按钮的关键属性为class="close"该class实现了样式的改变,data-dismiss="modal"提供了HTML关闭的触发条件

3.模态弹窗提供了四个属性,这四个属性通常设置在模态弹窗上class="modal"那一层(内容DOM的最外层),

四个属性分别为:

a.data-backdrop

是否包含一个背景,默认值为true同时单击背景可以关闭模态窗,设置为data-backdrop="static"则单击背景时不关闭,设置为backdrop="false"则不存在背景

b.data-keyboard

按下ESC时是否关闭模态窗默认值为true即按下时关闭模态窗,设置为data-keyboard="false"则在点击ESC时不再关闭模态窗(该属性要想生效要在最外层设置属性tabindex)

c.data-show

初始化时是否显示默认值为true即初始时显示,data-show="false"则初始化时不显示第一次点击触发元素准备模态窗,在点击一次开始显示模态窗

d.href:加载其他内容

三.model模态窗提供了四个事件:

事件类型 描述

show.bs.modal show 方法调用之后立即触发该事件。如果是通过点击某个作为触发器的元素,则此元素可以通过事件的 relatedTarget 属性进行访问。

shown.bs.modal 此事件在模态框已经显示出来(并且同时在 CSS 过渡效果完成)之后被触发。如果是通过点击某个作为触发器的元素,则此元素可以通过事件的 relatedTarget 属性进行访问。

hide.bs.modal hide 方法调用之后立即触发该事件。

hidden.bs.modal 此事件在模态框被隐藏(并且同时在 CSS 过渡效果完成)之后被触发。

loaded.bs.modal 从远端的数据源加载完数据之后触发该事件。

注意:

1.show.bs.modal在显示之前触发

2.shown.bs.modal在显示之后触发

3.hide.bs.modal在隐藏之前触发

4.hidden.bs.modal在隐藏之后触发

在modal框加载同时,提供几个方法用来控制modal框
$("#myModal").on("loaded.bs.modal",function{
//在模态框加载的同时做一些动作
});
$("#myModal").on("show.bs.modal",function{
//在show方法后调用
});
$("#myModal").on("shown.bs.modal",function{
//在模态框完全展示出来做一些动作
});
$("#myModal").on("hide.bs.modal",function{
//hide方法后调用
});
$("#myModal").on("hiden.bs.modal",function{
//监听模态框隐藏事件做一些动作
});

列如:

<span style="font-family:Comic Sans MS;font-size:18px;">  
<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="utf-8">   
    <title>Bootstrap 实例 - 模态框(Modal)插件</title>  
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">  
    <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>  
    <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>  
</head>  
<body>  
  
<h2>创建模态框(Modal)</h2>  
<!-- 按钮触发模态框 -->  
<button class="btn btn-primary btn-lg">  
    开始演示模态框  
</button>  
<!-- 模态框(Modal) -->  
<p class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden>  
    <p class="modal-dialog">  
        <p class="modal-content">  
            <p class="modal-header">  
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">  
                    ×  
                </button>  
                <h4 class="modal-title" id="myModalLabel">  
                    模态框(Modal)标题  
                </h4>  
            </p>  
            <p class="modal-body">  
                在这里添加一些文本  
            </p>  
            <p class="modal-footer">  
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭  
                </button>  
                <button type="button" class="btn btn-primary">  
                    提交更改  
                </button>  
            </p>  
        </p><!-- /.modal-content -->  
    </p><!-- /.modal -->  
</p>  
    <script>  
  $(function(){  
    $(".btn").click(function(){  
      $("#myModal").modal("toggle");  
    });  
    $('#myModal').on('show.bs.modal', function (e) {  
        alert('show.bs.modal')  
    });  
    $('#myModal').on('shown.bs.modal', function (e) {  
        alert('shown.bs.modal')  
    })  
  });  
</script>  
</body>  
</html>  
</span>  

<script> $(function(){ $(".btn").click(function(){ $("#myModal").modal("toggle"); }); $('#myModal').on('show.bs.modal', function (e) { alert('show.bs.modal') }); $('#myModal').on('shown.bs.modal', function (e) { alert('shown.bs.modal') }) }); </script>列如:当有一堆按钮,都要触发相同的模态框(如:向好友列表中某个人发消息),只是有用户ID不同,那么可以使用data-whatever配合event.relatedtarget来实现:
<!DOCTYPE html>    
<html lang="zh-CN">    
<head>    
    <meta charset="utf-8">    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">    
    <meta name="viewport" content="width=device-width, initial-scale=1">    
    <title>Bootstrap Modal</title>    
    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">    
</head>    
<body>    
    
    
<p class="panel panel-default">    
    <p class="panel-heading">好友列表</p>    
    <p class="panel-body">    
        <p class="list-group" role="group" aria-label="好友列表">    
            <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"    
                    data-whatever="张三">张三    
            </button>    
            <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"    
                    data-whatever="李四">李四    
            </button>    
            <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"    
                    data-whatever="王二">王二    
            </button>    
        </p>    
    </p>    
</p>    
    
<p class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">    
    <p class="modal-dialog" role="document">    
        <p class="modal-content">    
            <p class="modal-header">    
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span    
                        aria-hidden="true">×</span></button>    
                <h4 class="modal-title" id="exampleModalLabel">New message</h4>    
            </p>    
            <p class="modal-body">    
                <form>    
                    <p class="form-group">    
                        <label for="recipient-name" class="control-label">Recipient:</label>    
                        <input type="text" class="form-control" id="recipient-name">    
                    </p>    
                    <p class="form-group">    
                        <label for="message-text" class="control-label">Message:</label>    
                        <textarea class="form-control" id="message-text"></textarea>    
                    </p>    
                </form>    
            </p>    
            <p class="modal-footer">    
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>    
                <button type="button" class="btn btn-primary">Send message</button>    
            </p>    
        </p>    
    </p>    
</p>    
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>    
<script src="http://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>    
<script>    
    $('#exampleModal').on('show.bs.modal', function (event) {    
        var button = $(event.relatedTarget) // 触发事件的按钮    
        var recipient = button.data('whatever') // 解析出data-whatever内容    
        var modal = $(this)    
        modal.find('.modal-title').text('Message To ' + recipient)    
        modal.find('.modal-body input').val(recipient)    
    })    
</script>    
</body>    
</html>   

Tags:BO OO OT TS 
作者:网络 来源:汉堡请不要欺负面条