• Bootstrap 学习之js插件(模态框(Modal)插件)


    Bootstrap 模态框(Modal)插件

      模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。

      (1)提供信息、警告信息、大文本;

      (2)确认按钮(多按钮);

      (3)显示表单元素;(一般用Ajax操作等功能)

      (4)其他需要特殊显示的信息(如单击缩略图时放大图片);

     1 <div class="modal show">
     2         <div class="modal-dialog">
     3             <div class="modal-content">
     4                 <div class="modal-header">
     5                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
     6                     <h4 class="modal-title">标题</h4>
     7                 </div>
     8                 <div class="modal-body">
     9                     <p>这里是弹窗的具体内容......&hellip;</p>
    10                 </div>
    11                 <div class="modal-footer">
    12                     <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
    13                     <button type="button" class="btn btn-primary">保存</button>
    14                 </div>
    15             </div>
    16         </div>
    17     </div>

      这个是静态的页面,直接显示在屏幕上;接下来,我们来看一下按钮触发模态框;

     1    <h2>创建模态框</h2>
     2     <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
    3 <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 4 <div class="modal-dialog"> 5 <div class="modal-content"> 6 <div class="modal-header"> 7 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 8 <h4 class="modal-title">标题</h4> 9 </div> 10 <div class="modal-body"> 11 <p>这里是弹窗的具体内容......&hellip;</p> 12 </div> 13 <div class="modal-footer"> 14 <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> 15 <button type="button" class="btn btn-primary">保存</button> 16 </div> 17 </div> 18 </div> 19 </div>

      点击按钮则弹出模态框;

    用法

    您可以切换模态框(Modal)插件的隐藏内容:

      通过 data 属性:在控制器元素(比如按钮或者链接)上设置属性 data-toggle="modal",同时设置 data-target="#identifier"(标识符) 或href="#identifier"(标识符) 来指定要切换的特定的模态框(带有 id="identifier")。

      通过 JavaScript:使用这种技术,您可以通过简单的一行 JavaScript 来调用带有 id="identifier" 的模态框:

    • $('#identifier').modal(options)

    二、代码讲解

      1、使用模态窗口,需要有某种触发器。我们可以使用按钮或者链接。

      2、观看上面的代码,我们发现在 <button> 标签中,data-target="#myModal" 就是我们在页面上加载的模态框的目标。我们可以在页面上创建多个模态框,然后为每个模态框创建不同的触发器。

     1 <body>
     2     <h2>创建模态框</h2>
     3     <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
     4     <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
     5         <div class="modal-dialog">
     6             <div class="modal-content">
     7                 <div class="modal-header">
     8                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
     9                     <h4 class="modal-title">标题</h4>
    10                 </div>
    11                 <div class="modal-body">
    12                     <p>这里是弹窗的具体内容......&hellip;</p>
    13                 </div>
    14                 <div class="modal-footer">
    15                     <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
    16                     <button type="button" class="btn btn-primary">保存</button>
    17                 </div>
    18             </div>
    19         </div>
    20     </div>
    21 
    22     <h2>创建多个模态框</h2>
    23     <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal1">开始演示模态框</button>
    24     <div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    25         <div class="modal-dialog">
    26             <div class="modal-content">
    27                 <div class="modal-header">
    28                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    29                     <h4 class="modal-title">标题1</h4>
    30                 </div>
    31                 <div class="modal-body">
    32                     <p>这里是弹窗的具体内容......&hellip;</p>
    33                 </div>
    34                 <div class="modal-footer">
    35                     <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
    36                     <button type="button" class="btn btn-primary">保存</button>
    37                 </div>
    38             </div>
    39         </div>
    40     </div>
    41 </body>

    在模态框中需要注意两点:

    • 在模态框中需要注意两点:aria-labelledby="myModalLabel",该属性引用模态框的标题。
      1. 第一是 .modal,用来把 <div> 的内容识别为模态框。
      2. 第二是 .fade class。当模态框被切换时,它会引起内容淡入淡出。
    • 属性 aria-hidden="true" 用于保持模态窗口不可见,直到触发器被触发为止(比如点击在相关的按钮上)。
    • <div class="modal-header">,modal-header 是为模态窗口的头部定义样式的类。
    • class="close",close 是一个 CSS class,用于为模态窗口的关闭按钮设置样式。
    • data-dismiss="modal",是一个自定义的 HTML5 data 属性。在这里它被用于关闭模态窗口。
    • class="modal-body",是 Bootstrap CSS 的一个 CSS class,用于为模态窗口的主体设置样式。
    • class="modal-footer",是 Bootstrap CSS 的一个 CSS class,用于为模态窗口的底部设置样式。
    • data-toggle="modal",HTML5 自定义的 data 属性 data-toggle 用于打开模态窗口。
    • aria-labelledby="myModalLabel",该属性引用模态框的标题。

    选项

    有一些选项可以用来定制模态窗口(Modal Window)的外观和感观,它们是通过 data 属性或 JavaScript 来传递的。下表列出了这些选项:

    选项名称类型/默认值Data 属性名称描述
    backdrop boolean 或 string 'static'
    默认值:true
    data-backdrop 指定一个静态的背景,当用户点击模态框外部时不会关闭模态框。
    keyboard boolean
    默认值:true
    data-keyboard 当按下 escape 键时关闭模态框,设置为 false 时则按键无效。
    show boolean
    默认值:true
    data-show 当初始化时显示模态框。
    remote path
    默认值:false
    data-remote 使用 jQuery .load 方法,为模态框的主体注入内容。如果添加了一个带有有效 URL 的 href,则会加载其中的内容。如下面的实例所示:
    <a data-toggle="modal" href="remote.html" data-target="#modal">请点击我</a>

    方法

    下面是一些可与 modal() 一起使用的有用的方法。

    方法描述实例
    Options: .modal(options) 把内容作为模态框激活。接受一个可选的选项对象。
    $('#identifier').modal({
    keyboard: false
    })
    Toggle: .modal('toggle') 手动切换模态框。
    $('#identifier').modal('toggle')
    Show: .modal('show') 手动打开模态框。
    $('#identifier').modal('show')
    Hide: .modal('hide') 手动隐藏模态框。
    $('#identifier').modal('hide')

     

        <h2>创建模态框</h2>
        <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4 class="modal-title">标题</h4>
                    </div>
                    <div class="modal-body">
                        <p>这里是弹窗的具体内容......&hellip;</p>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                        <button type="button" class="btn btn-primary">保存</button>
                    </div>
                </div>
            </div>
        </div>
        <script>
            $(function () {
                $('#myModal').modal({
                keyboard: true
            })});
        </script>

      从以上代码可知:当添加js调用代码之后,打开页面模态框就直接弹出来了,可以按键盘键Esc关闭弹出框;

    事件

    下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。

    事件描述实例
    show.bs.modal 在调用 show 方法后触发。
    $('#identifier').on('show.bs.modal', function () {
      // 执行一些动作...
    })
    shown.bs.modal 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
    $('#identifier').on('shown.bs.modal', function () {
      // 执行一些动作...
    })
    hide.bs.modal 当调用 hide 实例方法时触发。
    $('#identifier').on('hide.bs.modal', function () {
      // 执行一些动作...
    })
    hidden.bs.modal 当模态框完全对用户隐藏时触发。
    $('#identifier').on('hidden.bs.modal', function () {
      // 执行一些动作...
    })

    实例

    <body>
        <h2>创建模态框</h2>
        <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4 class="modal-title">标题</h4>
                    </div>
                    <div class="modal-body">
                        <p>这里是弹窗的具体内容......&hellip;</p>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                        <button type="button" class="btn btn-primary">保存</button>
                    </div>
                </div>
            </div>
        </div>
        <script>
            $(function () {
                $('#myModal').modal('hide')
            });
        </script>
        <script>
            $(function () {
                $('#myModal').on('hide.bs.modal',function () {
                    alert('hello!');
                })
            });
        </script>
    </body>

  • 相关阅读:
    java server: all kinds of errors
    fragment使用的错误
    unity3d+vuforia开发增强现实例子编译
    android遇到的几个问题
    cocos2dx 特效
    cchttpclient中停止网络请求的方法
    cocos2dx 2.2.5 hitWidget->onTouchEnded(pTouch, pEvent); 异常
    将博客搬至CSDN
    ffmpeg 编译Android
    常用注解
  • 原文地址:https://www.cnblogs.com/zzjeny/p/5564400.html
Copyright © 2020-2023  润新知