首页 > 其他分享 >Bootstrap 模态框(Modal)插件的基本应用

Bootstrap 模态框(Modal)插件的基本应用

时间:2024-08-22 10:28:32浏览次数:14  
标签:模态 插件 Modal Bootstrap modal bs identifier data

转载: 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 事件,则会显示一个警告消息。

标签:模态,插件,Modal,Bootstrap,modal,bs,identifier,data
From: https://www.cnblogs.com/itjeff/p/18373299

相关文章

  • utools 必用插件
    utools必用插件官方网站:https://www.u.tools一、书签与历史记录1.在里面配置chrome,历史记录,书签管理书签管理设置ubuntu电脑下:设置为alex是用户名,如果是新的电脑,需要更换用户名/home/alex/.config/google-chrome/Default/Bookmarks历史记录设置/home/alex/.config......
  • 免授权Thinkphp彩虹易支付源码(USDT插件/当面付/通道轮询/搭建下载)
    彩虹易支付源码应运而生,旨在为企业和商户提供一款高效、安全、个性化的移动支付解决方案。本文将从代码设计者的角度,详细介绍彩虹易支付源码的开发背景、需求分析、技术架构、功能模块、示例代码以及开发流程。源码:fakaysw.top一、开发背景移动支付市场的兴......
  • [VS Code扩展]写一个代码片段管理插件(二):功能实现
    @目录创建和插入代码片段代码片段列表代码片段预览代码片段编辑自定义映射默认映射自动完成项目地址创建和插入代码片段VSCode扩展提供了数据存储,其中globalState是使用全局存储的Key-Value方式来保存用户状态,支持在不同计算机上保留某些用户状态,详情请参考官方文档若在编辑器......
  • 多模态学习之论文阅读:《Pre-gating and Contextual Attention Gate — A new fusion m
    《Pre-gatingandContextualAttentionGate—Anewfusionmethodformulti-modaldatatasks》 -2024.11 影响因子7.9  (一)要点提出一种新的多模态数据融合方法,即PCAG(Pre-gatingandContextualAttentionGate),以解决现有跨模态交互学习中的噪声问题和不确定性问......
  • 多模态学习之论文阅读:《Systematic comparison of deep-learning based fusion strate
    《Systematiccomparisonofdeep-learningbasedfusionstrategiesfor multi-modal ultrasoundindiagnosisof liver cancer》 -2024.10 NEUROCOMPUTING 影响因子7.9(一)多模态数据构成研究设计了“病变配对”方法来构建数据集,包括B模式超声、剪切波弹性成像(SWE)和......
  • js 手写图片懒加载插件
    一、目标模仿vue-lazyload插件只需将img标签的src属性名替换为自定义属性v-lazy,即可实现图片懒加载功能例如:二、实现不清楚图片懒加载原理的参考我的上一篇博客1.封装自定义插件:暴露一个对象,包含一个install方法先介绍一下自定义插件使用方法和通用写法://main.jsimp......
  • 使用Mybatis 的PageHelper插件实现分页查询功能
    Mybatis提供了一个分页插件PageHelper,它会帮助我们自动完成分页和获取总数量的操作,可以方便实现分页查询。第一步,在pom.xml文件引入PageHelper依赖。<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-s......
  • IDEA翻译插件-Translation
    简介Translation是一个为IntelliJIDEA和其他基于JetBrains的IDE(如PyCharm、WebStorm等)设计的插件。这个插件的主要功能是帮助开发者在编写代码或文档时快速翻译文本。它集成了谷歌翻译、微软翻译、DeepL翻译、OpenAI翻译、有道翻译等众多翻译引擎官网https://intell......
  • 泊松自助法(Poisson Bootstrap Sampling):大型数据集上的自助抽样
    自助抽样可以根据收集的样本推断总体的统计特征(如均值、十分位数、置信区间)。泊松自助抽样(PoissonBootstrapSampling)是一种用于统计分析中的重采样技术,特别是在机器学习和数据科学中用于模型评估和误差估计。这种方法的一个特点是保留了样本中数据点出现的自然波动,而不是像传......
  • React.js如何使用Bootstrap
    在React.js项目中使用Bootstrap有多种方法,主要包括直接引入BootstrapCSS文件和使用ReactBootstrap库。下面将详细介绍这两种方法。方法一:直接引入BootstrapCSS文件这是最简单的方式,只需在项目中引入Bootstrap的CSS文件即可。安装Bootstrap:你可以通过......