使用bootstrap的JS插件实现模态框效果

在上一篇文章中,咱们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,咱们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提升效率。一个好的轮子,不只能大幅减轻工做量,并且能让咱们的代码更简明和优雅。javascript

今天咱们选择使用著名的 bootstrap 库的模态框插件 modal.js 来实现模态框效果,同时也使你们进一步熟悉 bootstrap 的插件使用。css

一. bootstrap 的 js 插件的简单介绍

1.引入

a. 引入所有JS插件

咱们在使用 bootstrap 库时,引入的文件 bootstrap.js 或者 bootstrap.min.js 就是 bootstrap的插件文件,这两种文件都集成了 bootstrap 的全部插件,区别在于 *.min.js 是压缩后的版本。java

咱们在使用 bootstrap 的 js插件时不须要作更多的工做,只须要引入这两个文件中的一个就能够了,另外重要的信息是 bootstrap 的全部插件都依赖于 jquery 库,因此在引入 bootstrap 的插件时,必须先引入 jquery 库。jquery

b.引入单个JS插件git

若是只使用 bootstrap库的 某个插件,因此不想引入所有插件时,能够选择单独引入某个插件。此种方法须要你有要使用的插件的单独文件,bootstrap 共有 12 个 js 插件,你能够到 github此处 下载使用每一个插件的单独文件。github

另外 bootstrap 有如下 12 个插件,你们能够大概作个了解:bootstrap

  • 动画过渡(Transitions): transition.js
  • 模态弹窗(Modal): modal.js
  • 下拉菜单(Dropdown): dropdown.js
  • 滚动侦测(Scrollspy): scrollspy.js
  • 选项卡(Tab): tab.js
  • 提示框(Tooltips): tooltop.js
  • 弹出框(Popover): popover.js
  • 警告框(Alert): alert.js
  • 按钮(Buttons): button.js
  • 折叠/手风琴(Collapse): collapse.js
  • 图片轮播Carousel: carousel.js
  • 自动定位浮标Affix: affix.js

2.引入插件的使用

a.经过 data 属性 API

bootstrap 提供了一个很是方便的 API 来调用插件,那就是 data 属性 。咱们不须要写不少 js 代码,只须要为 HTML 标签增长 data-* 属性,就能够调用 js 插件实现各类效果 。ide

例如咱们想为按钮绑定 下拉菜单效果,只须要为按钮添加 data-toggle="dropdown" 属性,在点击按钮时,就会调用 dropdown 插件了。函数

b.经过 纯JS API

固然咱们也可使用 bootstrap 提供的 纯javascript API 来调用插件,例如为 id 为 test 的 按钮绑定调用 dropdown 插件操做,可使用以下的 js 代码:学习

$("#test").dropdown(option) /可带选项参数option

 

二.模态框插件详解

1.模态框的代码结构

bootstrap 模态框插件是 modal.js 。使用的代码结构样式组件以下:

  • .modal               模态框
  • .modal-dialog    模态框主体
  • .modal-content 模态框内容
  • .modal-header  模态框内容头部(标题)
  • .modal-title        模态框标题
  • .modal-body     模态框内容主要内容部分
  • .modal-footer    模态框内容底部 (可放置操做按钮等)

一个模态框的结构相似以下

 

<h1>模态框是个值得学习的好效果</h1>
<button class="btn btn-success" data-toggle="modal" data-target="#modalone" data-show="false">come on!</button>
<div class="modal fade" id="modalone">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 class="modal-title">模态弹出窗标题</h4>
      </div>
      <div class="modal-body">
        <p>模态框主体</p>
      </div>
      <div class="modal-footer">
        <p style="display: inline-block;">模态框底部</p>
        <button class="btn btn-info">done</button>
      </div>
    </div>
  </div>
</div>
</div>

 

2.模态框插件的 data 属性 API

a.必须的 data 属性

以上代码第一个按钮的 data-toggle="modal" 表示 此按钮为模态框的触发器,点击时弹出模态框。另外也可使用 连接标签 <a> 的 href 属性代替 data-toggle 将连接<a> 做为触发器,但不推荐。

data-target="#modalone" 属性表示 触发的模态窗口 ID 为 modalone 。一个页面能够有多个模态窗口触发器,可是一个触发器只能触发对应的模态框,不能触发多个模态框。

以上两个 data 属性是实现模态框效果必须的。

ps.

.fade 格式化类能够为模态框弹出添加过渡效果。

close 格式化类 和 data-dismiss 属性配合能够为模态框添加关闭按钮。

b.可选的 data 属性

另外还有一些其余可选的 data 属性,能够加强模态框的表现效果。以下:

  • data-backdrop    是否包含一个背景 DIV 从而在单击背景时关闭模态框,属性值为 true 时 包含, 为 static 时不包含。
  • data-keyboard    为 true 时按下键盘 ESC 时模态框关闭,false时不关闭
  • data-show           为true时页面加载后不显示,为false时显示

3. 使用 JS 代码 API

经过 JS 代码调用插件带 选项参数 也能够达到与设置以上属性相同的效果,代码以下:

 

$(function () {
    $(".btn").click(function () {
        $("#modalone").modal({
            backdrop: false, // 至关于data-backdrop
            keyboard: false, // 至关于data-keyboard
            show: true, // 至关于data-show
            remote: "" // 至关于a标签做为触发器的href
        });
    });
});

 

4.最终效果

最后,以上模态框代码效果以下:

未点击按钮时:

 

点击后:

一个简单的模态框效果就制做完成了。

三.补充

1.纯JS API 的方法

JS 代码调用插件, .modal() 方法的参数除了能够携带以上说起的 option 参数外,还能够有如下几个:

  • .modal('toggle') 手动切换模态框
  • .modal('show') 手动打开模态框
  • .modal('hide') 手动关闭模态框

2.纯JS API 的事件

同时,模态框插件还提供了如下几个钩子事件函数,能够在JS代码中使用来达到丰富模态框效果或添加更多功能的目的。

 

show.bs.modal 在show方法调用时当即触发(还没有显示以前);若是单击了一个元素,那么该元素将做为事件relatedTarget事件
shown.bs.modal 该事件在模态窗彻底显示给用户以后(而且等CSS动画完成以后)触发;若是单击了一个元素,那么该元素将做为事件relatedTarget事件
hide.bs.modal 在hide方法调用时(但还未关闭隐藏)当即触发
hidden.bs.modal 该事件在模态弹出窗彻底隐藏以后(并CSS动画漂亮完成以后)触发

以上就是 bootstrap 的模态框插件的基本知识,但愿你们喜欢。

相关文章
相关标签/搜索