惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - itjeff

sql server中展示数据库所有表结构的查询语句,然后可以做Excel导出 jQuery的.each()方法中return的坑 the server responded with a status of 413 (Request Entity Too Large) 解决 js 常用函数 push()、pop()、shift()、unshift()、slice()、splice() 等 Win10 HEU KMS Activator被识别为病毒怎么办? 解决equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突 sql server 数据库设置不区分大小写的设置 bootstraptable 列隐藏 sql server 2014 新建授权某个表的用户 list和datatable相互转化 C#的小数位保留以及四舍五入 Windows 服务器远程桌面授权120天到期 sql server 清空日志操作步骤 查看SQL Server数据库各表数据量与占用空间 SQL Server 日志文件收缩 一文说清楚http、tcp、socket、websocket区别 JS中的 解构、可扩展运算符(...) Access-Control-Allow- 设置 跨域资源共享 CORS 详解 js 中的相对路径的写法
Bootstrap 模态框(Modal)插件的基本应用
itjeff · 2024-08-22 · via 博客园 - itjeff

转载: https://www.w3h5.com/post/74.html

模态框(Modal)通俗的说就是在父窗体上弹出的一个子窗体。

通常用来显示一个单独的源内容或者是对一些模块进行进一步详细的介绍,可以在不离开父窗体的情况下进行一些互动和内容的交互。

如果只是单独引用该插件的功能,只需要引用 modal.js ,也可以引用 bootstrap.js 或压缩版的 bootstrap.min.js。

一、用法:

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

  • 通过 data 属性:在控制器元素(比如按钮或者链接)上添加属性 data-toggle="modal",同时设置 data-target="#identifier" 或 href="#identifier" 来指定要切换的特定的模态框(id 为 identifier的)。
  • 通过 JavaScript:使用这种技术,您可以通过简单的一行 JavaScript 来调用带有 id="identifier" 的模态框:
$('#identifier').modal(options)

实例:

注意:因为 Bootstrap.js 需要依赖 jquery 所以需要引入 jquery.js 文件

测试代码如下:

复制代码

<div class="container">
    <h2>创建模态框(Modal)</h2>
    <!-- 按钮触发模态框 -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
    <!-- 模态框(Modal) -->
    <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)标题</h4>
                </div>
                <div class="modal-body">在这里添加一些文本</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><!-- /.modal-content -->
        </div><!-- /.modal -->
    </div>
</div>

复制代码

测试结果如下图:

代码讲解:

使用模态窗口,需要有某种触发器,可以使用按钮或链接,这里我们使用的是按钮。

仔细查看上面的代码,会发现在 <button> 标签中,data-target="#myModal" 是要在页面上加载的模态框的目标。

可以在页面上创建多个模态框(模态框的内容在页面中定义),然后为每个模态框创建不同的触发器。

不能在同一时间加载多个模块,但可以在页面上创建多个在不同时间进行加载。

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

第一是 .modal,用来把 <div> 的内容识别为模态框。

第二是 .fade,当模态框被切换时,它会引起内容淡入淡出。

  • aria-labelledby="myModalLabel",该属性引用模态框的标题。
  • 属性 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 用于打开模态窗口。

二、选项

有一些选项可以用来定制模态窗口(Modal Window)的外观和感观,可以将选项通过 data 属性或 JavaScript 来传递,对于 data 属性,需要将参数名称放到 data- 之后,例如 data-backdrop=""。

1、backdrop 属性有 boolean 或 string 'static',默认值为 true, data-backdrop 是指定一个静态的背景,当用户点击模态框外部时不会关闭模态框。

不过 data-backdrop 有时候会与页面冲突,如果要关闭背景,将其设置为 false 即可: data-backdrop="false" 。

2、keyboard 属性有 boolean,默认值:true , data-keyboard 是当按下 esc 键时关闭模态框,设置为 false 时则按键无效。

3、show 属性有 boolean ,默认值:true,data-show 是当初始化时显示模态框。

4、remote 类型是 path ,默认值:false ,data-remote 使用 jQuery .load 方法,为模态框的主体注入内容。如果添加了一个带有有效 URL 的 href,则会加载其中的内容。

如下面的实例所示:

<a data-toggle="modal" href="remote.html" data-target="#modal">请点击我</a>

三、方法

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

1、Options:  .modal(options)  把内容作为模态框激活,接受一个可选的选项对象。

$('#identifier').modal({
    keyboard: false
})

2、Toggle: .modal('toggle') 手动切换模态框。

$('#identifier').modal('toggle')

3、Show:  .modal('show') 手动打开模态框。

$('#identifier').modal('show')

4、Hide: .modal('hide') 手动隐藏模态框。

$('#identifier').modal('hide')

实例:

下面的演示方法的用法:

复制代码

<!-- 模态框(Modal) -->
<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">×</button>
                <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题</h4>
            </div>
            <div class="modal-body">按下 ESC 按钮退出。</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><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<script>
$(function() {
    $('#myModal').modal({
        keyboard: true
    })
});
</script>

复制代码

运行结果如下:按 ESC 或者点击屏幕,模态框会关闭。

四、事件

下面试模态框中用到的事件,这些事件可在函数中当钩子使用。

1、show.bs.modal 在调用 show 方法后触发。

$('#identifier').on('show.bs.modal', function () {
  

2、shown.bs.modal 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。

$('#identifier').on('shown.bs.modal', function () {
  

3、hide.bs.modal 当调用 hide 实例方法时触发。

$('#identifier').on('hide.bs.modal', function () {
  

4、hidden.bs.modal 当模态框完全对用户隐藏时触发。

$('#identifier').on('hidden.bs.modal', function () {
  

实例:

复制代码

<!-- 模态框(Modal) -->
<h2>模态框(Modal)插件事件</h2>
<!-- 按钮触发模态框 -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
<!-- 模态框(Modal) -->
<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">×</button>
                <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题</h4>
            </div>
            <div class="modal-body">点击关闭按钮检查事件功能。</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><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<script>
$(function() {
    $('#myModal').modal('hide')
});
</script>
<script>
$(function() {
    $('#myModal').on('hide.bs.modal',
    function() {
        alert('嘿,我听说您喜欢模态框...');
    })
});
</script>

复制代码

运行结果如下:点击了 关闭 按钮,即 hide 事件,则会显示一个警告消息。