Bootstrap模态框简单学习

前言

单个还是全部引入

插件可以单个引入(使用Bootstrap提供的单个*.js文件),或一次性全部引入(使用bootstrap.js或压缩版的bootstrap.min.js)。

不要将两份文件全部引入

bootstrap.jsbootstrap.min.js同样是包含了所有插件。区别是:一个没有压缩,一个进行了压缩。

插件之间的依赖

某些插件和CSS组件依赖于其它插件。如果你是单个引入每个插件的,请确保在文档中检查插件之间的依赖关系。注意,所有插件都依赖jQuery(也就是说,jQuery必须在所有插件之前引入页面)。 bower.json文件中列出了所支持的jQuery版本。

Data属性

你可以仅仅通过data属性API就能使用所有的Bootstrap插件,无需写一行JavaScript代码。这是Bootstrap中的一等API,也应该是你的首选方式。

话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭data属性API的方式,即解除绑定到文档命名空间上的所有事件data-api。就像下面这样:

$(document).off(‘.data-api‘)

另外,如果是针对某个特定的插件,只需在data-api前面添加那个插件的名称作为命名空间,如下:

$(document).off(‘.alert.data-api‘)

编程式API

我们还提供了所有Bootstrap插件的纯JavaScript API。所有公开的API都是支持单独或链式调用的,并且返回其所操作的元素集合(注:和jQuery的调用形式一致)。

$(‘.btn.danger‘).button(‘toggle‘).addClass(‘fat‘)

所有方法都可以接受一个可选的option对象作为参数,或者一个代表特定方法的字符串,或者什么也不提供(在这种情况下,插件将会以默认值初始化):

$(‘#myModal‘).modal()                      // 使用默认值初始化
$(‘#myModal‘).modal({ keyboard: false })   // 初始化。不支持键盘导航
$(‘#myModal‘).modal(‘show‘)                // 初始化并立即展示</p>

每个插件还通过Constructor属性暴露了其自身的构造器函数:$.fn.popover.Constructor。如果你想获取某个插件的实例,可以直接从页面元素内获取:$(‘[rel=popover]‘).data(‘popover‘)

避免冲突

某些时候可能需要将Bootstrap插件与其他UI框架共同使用。在这种情况下,命名空间冲突随时可能发生。如果不幸发生了这种情况,你可以通过调用插件的.noConflict方法恢复原始值。

var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the Bootstrap functionality

事件

Bootstrap为大部分插件所具有的动作提供了自定义事件。一般来说,这些事件都有不定式和过去式两种动词形式,例如,不定式形式的动词(例如show)表示其在事件开始时被触发;而过去式动词(例如shown)表示其在动作直接完毕之后被触发。

从3.0.0开始,所有的Bootstrap事件都采用了命名空间。

所有以不定式形式的动词命名的事件都提供了preventDefault功能。这就赋予你在动作开始执行前将其停止的能力。

$(‘#myModal‘).on(‘show.bs.modal‘, function (e) {
  if (!data) return e.preventDefault() // stops modal from being shown
})

第三方工具库

Bootstrap官方不提供对第三方JavaScript工具库的支持,例如Prototype或jQuery UI。除了.noConflict和采用命名空间的事件,还可能会有兼容性方面的问题,这就需要你自己来处理了。你可以在此邮件列表获取帮助。

模态框

案例

模态框经过了优化,更加灵活,以弹出对话框的形式出现,具有最小和最实用的功能集。

不支持模态框重叠

千万不要在一个模态框上重叠另一个模态框。要想同时支持多个模态框,需要自己写额外的代码来实现。

对于移动设备的附加说明

本文档针对移动设备上使用模态框有一些附加说明。请参考浏览器支持章节。

静态案例

以下模态框包含了模态框的头、体和一组在放置于底部的按钮。

代码:

<divclass="modal fade"><divclass="modal-dialog"><divclass="modal-content"><divclass="modal-header"><buttontype="button"class="close"data-dismiss="modal"aria-hidden="true">&times;</button><h4class="modal-title">Modal title</h4></div><divclass="modal-body"><p>One fine body&hellip;</p></div><divclass="modal-footer"><buttontype="button"class="btn btn-default"data-dismiss="modal">Close</button><buttontype="button"class="btn btn-primary">Save changes</button></div></div><!-- /.modal-content --></div><!-- /.modal-dialog --></div><!-- /.modal -->

首先最外层的是model,然后里面嵌套了一个model-dialog,model-dialog里面又嵌套model-content,当中包含“header”、“title”、"footer"。不过运行程序后,模态框没有显示出来,暂时还没找到原因。

动态演示

点击下面的按钮即可通过JavaScript启动一个模态框。此模态框将从上到下、逐渐浮现到页面前。

代码:

[html] view plain copy

  1. <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">加载模态框</button>
  2. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  3. <div class="modal-dialog">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  7. <h4 class="modal-title">Modal title</h4>
  8. </div>
  9. <div class="modal-body">
  10. <p>One fine body…</p>
  11. </div>
  12. <div class="modal-footer">
  13. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  14. <button type="button" class="btn btn-primary">Save changes</button>
  15. </div>
  16. </div><!-- /.modal-content -->
  17. </div><!-- /.modal-dialog -->
  18. </div><!-- /.modal -->

预览效果:

同样的,不过首先是一个按钮,按钮中添加了两个data属性,要设置data-toggle="modal" data-target="#myModal"。

然后下面最大的是一个modal,并且给与属性id赋值为上面button中的data-target ,进行交互。

增强模态框的可访问性

请确保为.modal添加了role="dialog"aria-labelledby="myModalLabel"属性指向模态框标题;aria-hidden="true"告诉辅助性工具略过模态框的DOM元素。

另外,你还应该为模态框添加描述性信息。为.modal添加aria-describedby属性用以指向描述信息。

用法

通过data属性

不需写JavaScript代码也可激活模态框。通过在一个起控制器作用的页面元素(例如,按钮)上设置data-toggle="modal",并使用data-target="#foo"href="#foo"指向特定的模态框即可。

例子就是上面的例子

通过JavaScript调用

只需一行JavaScript代码,即可通过id myModal调用模态框:

$(‘#myModal‘).modal(options)

方法

.modal(options)

将你指定的内容作为模态框启动。其接受一个可选的object类型的参数。

$(‘#myModal‘).modal({
  keyboard: false
})

.modal(‘toggle‘)

手动启动或隐藏模态框。

$(‘#myModal‘).modal(‘toggle‘)

手动打开一个模态框。

$(‘#myModal‘).modal(‘show‘)

手动隐藏一个模态框。

$(‘#myModal‘).modal(‘hide‘)
<script type="text/javascript">
    function test()
    {
        $(‘#myModal‘).modal(‘show‘);
    }
</script>
<button onClick="test()" class="btn btn-primary btn-lg">
  Launch demo modal
</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" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        One fine body&hellip;
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

为按钮添加了onclick事件,也就是通过点击按钮触发事件来进行模态框的弹出。

事件

Bootstrap的模态框类暴露了一些事件用于截获并执行自己的代码。

[javascript] view plain copy

  1. <script type="text/javascript">
  2. $(‘#myModal‘).on(‘show.bs.modal‘, function () {
  3. alert("show");
  4. });
  5. $(‘#myModal‘).on(‘shown.bs.modal‘, function () {
  6. alert("shown");
  7. });
  8. $(‘#myModal‘).on(‘hide.bs.modal‘, function () {
  9. alert("hide");
  10. });
  11. $(‘#myModal‘).on(‘hidden.bs.modal‘, function () {
  12. alert("hidden");
  13. });
  14. </script>

效果就是分别在显示时显示后关闭时关闭后可以执行自定义的函数。

时间: 2024-10-29 19:12:06

Bootstrap模态框简单学习的相关文章

Bootstrap模态框的学习笔记

模态框(Modal)是覆盖在父窗体上的子窗体,可提供信息.交互等.使用模态窗口,您需要有某种触发器. 在控制器元素(比如按钮或者链接)上设置属性 data-toggle="modal",表示触发的是个模态框. 设置 data-target="#myModal" 或 href="#myModal" 来指定要切换的特定的模态框(带有 id="myModal"). myModal是模态框定义的id,来指向特定的模态框.#表示在本页面

第二百四十三节,Bootstrap模态框插件

Bootstrap模态框插件 学习要点: 1.基本使用 2.用法说明 本节课我们主要学习一下 Bootstrap 中的模态框插件,这是一款交互式网站非常常见的 弹窗功能插件. 一.基本使用 使用模态框的弹窗组件需要三层 div 容器元素: 1分别为 modal(模态声明层). 2dialog(窗口声明层). 3content(内容层). 在内容层里面,还有三层: 1分别为 header(头 部). 2body(主体). 3footer(注脚). modal样式class类,写在声明模态框<div

JavaScript:bootstrap 模态框的简单应用

最近用上了bootstrap这个强大的前端框架,有空来总结一下.这里记录下模态框的简单应用. 首先,要在页面中引入相应的js.css文件 1 <link href="css/bootstrap.css" rel="stylesheet" type="text/css" /> 2 <script type="text/javascript" src="js/jquery.min.js">

使用bootstrap模态框实现浮动层

authour: 陈博益 updatetime: 2015-04-22 06:52:15 friendly link: http://v3.bootcss.com/javascript/#modals 目录: 1,bootstrap模态框的使用示例 2,注意点 1,下面是一个简单的例子说明bootstrap模态框的使用: 1 <!DOCTYPE html> //modal.html 2 <html xmlns="http://www.w3.org/1999/xhtml"

Bootstrap模态框按钮

1.触发模态框弹窗的代码 这里复制了一段Bootstrap模态框的代码 <h2>创建模态框(Modal)</h2> <!-- 按钮触发模态框 --> <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button> <!-- 模态框(Modal) --

Bootstrap 模态框(也可以说的弹出层)

最近在尝试使用bootstrap的模态框 使用模态框主要要引入一下几个js和css: bootstrap.css jquery.1.9.1.js(这个可以灵活选择) bootstrap.js html页面的写法如下: <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css"> <script src="bootstrap/js/j

去除BOOTSTRAP模态框半透明阴影

当使用bootstrap模态框默认自带半透明阴影,如果想要去除阴影,需要怎么做呢? 今天在项目中我遇到了这个问题,想要去除模态框的阴影,试了好久都没解决.后来问同事的时候才知道,当模态框弹出后,会加上这样一句代码: <div class="modal-backdrop  in"></div> 案例:自带半透明阴影的模态框 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta char

关于手动关闭BootStrap模态框

在网上找手动关闭BootStrap模态框的解决方法,说是(需要引用bootstrap.js等): $("#myModal").modal('hide'); 但是我发现我的只能关闭 , 不能关闭下面那半透明层.找了下发现是出现这两行代码的缘故. <div class="modal-backdrop fade in"></div> <div class="modal-backdrop fade in"></d

bootstrap模态框远程加载网页的正确处理方式

bootstrap模态框远程加载网页的方法 在bootsrap模态框文档里给出了这个方法: 使用链接模式 <a data-toggle="modal" href="tieniu.php" data-target="#modal">Click me</a> 使用脚本模式: $("#modal").modal({ remote: "tieniu.php" }); 没有给出任何实例,这种用