ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件

序言

Bootstrap的JavaScript插件是以JQuery为基础,提供了全新的功能并且还可以扩展现有的Bootstrap组件。通过添加data attribute(data 属性)可以轻松的使用这些插件,当然你也可以使用编程方式的API来使用。

为了使用Bootstrap插件,我们需要添加Bootstrap.js或者Bootstrap.min.js文件到项目中。这两个文件包含了所有的Bootstrap插件,推荐引用Bootstrap.min.js。当然你也可以包含指定的插件来定制化Bootstrap.js,已达到更好的加载速度。

Data属性 VS 编程API

Bootstrap提供了完全通过HTML标记的方式来使用插件,这意味着,你可以不写任何JavaScript代码,事实上这也是Bootstrap推荐的使用方式。

举个栗子,若要使Alert组件支持关闭功能,你可以通过添加data-dismiss="alert"属性到按钮(Botton)或者链接(A)元素上,如下代码所示:

  1. <div class="alert alert-danger">
  2.     <button data-dismiss="alert" class="close" type="button">x</button>
  3.     <strong>警告</strong>10秒敌人到
  4. </div>

当然,你也可以通过编程方式的API来实现同样的功能:

  1. <div class="alert alert-danger" id="myalert">
  2.     <button data-dismiss="alert" class="close" type="button" onclick="$('#myalert').alert('close')">x</button>
  3.     <strong>警告</strong>10秒敌人到
  4. </div>

下拉菜单(dropdown.js)

使用dropdown插件(增强交互性),你可以将下拉菜单添加到绝大多数的Bootstrap组件上,比如navbar、tabs等。注:将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 position: relative; 的元素中

如下是一个地域的菜单,通过Razor引擎动态绑定菜单元素:

  1. <div class="form-group">
  2.             @Html.LabelFor(model => model.TerritoryId, new { @class = "control-label col-md-2" })
  3.             @Html.HiddenFor(model => model.TerritoryId)
  4.             <div class="col-md-10">
  5.                 <div id="territorydropdown" class="dropdown">
  6.                     <button id="territorybutton" class="btn btn-sm btn-info" data-toggle="dropdown">@Model.Territory.TerritoryDescription</button>
  7.                     <ul id="territories" class="dropdown-menu">
  8.                         @foreach (var item in ViewBag.TerritoryId)
  9.                         {
  10.                             <li><a href="#" tabindex="-1" data-value="@item.Value">@item.Text</a></li>
  11.                         }
  12.                     </ul>
  13.                 </div>
  14.             </div>
  15.         </div>

注意:通过添加data属性:data-toggle="dropdown" 到Button或者Anchor上,可以切换dropdown下拉菜单,增加了交互性。其中菜单的<a>元素设置tabindex=-1,这样做是为了防止元素成为tab次序的一部分。

模态框(modal.js)

模态框以弹出框的形式可以为用户提供信息亦或者在此之中完成表单提交功能。Bootstrap的模态框本质上有3部分组成:模态框的头、体和一组放置于底部的按钮。你可以在模态框的Body中添加任何标准的HTML标记,包括Text或者嵌入的Youtube视频。

一般来说,务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现和/或功能。

如下即为一个标准的模态框,包含Header、Body、Footer:

将下面这段HTML标记放在视图的Top或者Bottom:

  1. <div class="modal fade" id="deleteConfirmationModal" tabindex="-1" role="dialog" aria-hidden="true">
  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>即将删除 '@Model.CompanyName'. </p>
  10.                 <p>
  11.                     <strong>你确定要继续吗</strong>
  12.                 </p>
  13.                 @using (Html.BeginForm("Delete", "Customers", FormMethod.Post, new { @id = "delete-form", role = "form" }))
  14.                 {
  15.                     @Html.HiddenFor(m => m.CustomerId)
  16.                     @Html.AntiForgeryToken()
  17.                 }
  18.             </div>
  19.             <div class="modal-footer">
  20.                 <button type="button" class="btn btn-default" onclick="$('#delete-form').submit();">是.删除</button>
  21.                 <button type="button" class="btn btn-primary" data-dismiss="modal">取消</button>
  22.             </div>
  23.         </div>
  24.     </div>
  25. </div>

注意:通过在Button上添加data属性:data-dismiss="modal"可以实现对模态框的关闭,当然你也可以使用编程方式API来完成:

  1. <button type="button" class="btn btn-primary" onclick="$('#deleteConfirmationModal').modal('hide')">取消</button>

为了展示模态框,我们可以不写任何JavaScript代码,通过添加data-toggle="modal"属性到Button或者Anchor元素上即可,同时,为了表示展示哪一个模态框,需要通过data-target来指定模态框的Id。

  1. <a href="#" data-toggle="modal" data-target="#deleteConfirmationModal">Delete</a>

同样,也可以使用编程方式API来打开一个模态框:

  1. $(document).ready(function () {
  2. $('#deleteConfirmationModal').modal('show');
  3. });

标签页(tab.js)

Tabs可以使用在大的表单上,通过Tabs分割成若干部分显示局部信息,比如在Northwind数据库中存在Customer顾客信息,它包含了基本信息和地址,可以通过Tabs进行Split,如下所示:

要使用Tabs也是非常简单的:首先创建标准的无序列表<ul>元素,需要为它的class设置为nav nav-tabs 或者nav nav-pills。其中<li>包含的<a>元素即为Tab元素,需要设置其data-toggle为tab或者pill属性以及点击它指向的<div>内容:

  1. <ul id="customertab" class="nav nav-tabs">
  2.     <li class="active"><a href="#info" data-toggle="tab">Customer Info</a></li>
  3.     <li><a href="#address" data-toggle="tab">Address</a></li>
  4. </ul>

为了设置Tabs的内容,需要创建一个父<div>元素并设置class为tab-content,在父的div容器中为每一个Tab内容创建div元素,并设置class为tab-pane和标识的Id,通过添加active来激活哪一个Tab内容的显示。

  1. <div class="tab-content well">
  2. <div class="tab-pane active" id="info">
  3. Customer Info
  4. </div>
  5. <div class="tab-pane" id="address">
  6. Customer Address
  7. </div>
  8. </div>

当然也可以通过编程方式的API来激活:

  1. $(document).ready(function () {
  2.  $('.nav-tabs a[href="#address"]').tab('show');
  3. });

工具提示(tooltip.js)

Tooltip能为用户提供额外的信息,Boostrap Tooltip能被用在各种元素上,比如Anchor:

  1. <a data-toggle="tooltip" data-placement="top" data-original-title="这是提示内容" href="#" >工具提示?</a>

你可以添加data-toggle="tooltip"来使用tooltip,当然你也可以设置内容的显示位置,通过添加data-placement属性来实现,Bootstrap为我们提供了4种位置:

  • top
  • bottom
  • left
  • right

最后,通过设置data-original-title设置了需要显示的Title。

注意:为了性能的考虑,Tooltip的data-api是可选的,这意味着你必须手动初始化tooltip插件:

  1. <script type="text/javascript">
  2. $(document).ready(function () {
  3. $('[data-toggle="tooltip"]').tooltip();
  4. });
  5. </script>

弹出框(popover.js)

弹出框和Tooltip类似,都可以为用户提供额外的信息,但弹出框可以展示更多的信息,比如允许我们展示一个Header和Content,如下所示:

  1. <a data-content="关于基础建设问题需要有具体的研讨和商量...." data-placement="bottom" title="" data-toggle="popover"href="#" data-original-title="转至百度">城市规划</a>

和Tooltip一样,为了性能的考虑,data-api是可选的,这意味着你必须手动初始化popover插件:

  1. <script type="text/javascript">
  2. $(document).ready(function () {
  3.  $('[data-toggle="popover"]').popover();
  4. });
  5. </script>

显示的结果如下所示:

手风琴组件(collapse.js)

手风琴组件有若干panel groups组成,每一个panel group依次包含了若干header和content 元素,最常见的使用场景就是FAQ,如下所示:

为了使用手风琴组件,需要对Panel Heading中的<a>设置data-toggle="collapse"和点击它展开的容器(Div)Id,具体如下所示:

  1. <div class="row">
  2.         <div class="panel-group" id="accordion">
  3.             <div class="panel panel-default">
  4.                 <div class="panel-heading">
  5.                     <h4 class="panel-title">
  6.                         <a data-toggle="collapse" data-parent="#accordion"
  7.                            href="#questionOne">
  8.                             问题 1:什么是 Microsoft MVP 奖励
  9.                         </a>
  10.                     </h4>
  11.                 </div>
  12.                 <div id="questionOne" class="panel-collapse collapse in">
  13.                     <div class="panel-body">
  14.                         解答 1:Microsoft 最有价值专家 (MVP) 奖励是一项针对 Microsoft 技术社区杰出成员的年度奖励,根据 Microsoft 技术社区的成员在过去 12 个月内对 Microsoft 相关离线和在线技术社区所作贡献的大小而确定
  15.                     </div>
  16.                 </div>
  17.             </div>
  18.             <div class="panel panel-default">
  19.                 <div class="panel-heading">
  20.                     <h4 class="panel-title">
  21.                         <a data-toggle="collapse" data-parent="#accordion"
  22.                            href="#questionTwo">
  23.                             问题 2:MVP 奖励存在的意义何在
  24.                         </a>
  25.                     </h4>
  26.                 </div>
  27.                 <div id="questionTwo" class="panel-collapse collapse">
  28.                     <div class="panel-body">
  29.                         解答 2:我们相信,技术社区可以促进自由且客观的知识交流,因此可以构建出一个可靠、独立、真实且可使每个人获益的专业知识来源。Microsoft MVP 奖励旨在表彰那些能积极与其他技术社区成员分享自身知识的全球杰出技术社区领导者
  30.                     </div>
  31.                 </div>
  32.             </div>
  33.         </div>
  34.     </div>

旋转木马组件(carousel.js)

Carousel它本质上是一个幻灯片,循环展示不同的元素,通常展示的是图片,就像旋转木马一样。你可以在许多网站上看到这种组件,要使用它也是非常方便的:

  • Carousel组件被包含在一个classcarousel以及data-ride"carousel"<div>元素中。
  • 在上述容器里添加一个有序列表<ol>,它将渲染成小圆点代表当前激活的幻灯片(显示在右下角)。
  • 紧接着,添加一个classcarousel-inner<div>,这个<div>容器包含了实际的幻灯片
  • 然后,添加左右箭头能让用户自由滑动幻灯片
  • 最后,设置滑动切换的时间间隔,通过设置data- interval来实现。当然也可以通过编程方式API来实现
  1. $('#myCarousel').carousel({
  2. interval: 10000
  3. })

将下面HTML标识放在View中即可:

  View Code

展示的效果如下:

小结

在这篇博客中介绍了常见的Bootstrap插件,通过使用数据属性和编程方式的API来使用这些插件,更多插件访问:http://v3.bootcss.com/javascript/ 获取。

本博客为 木宛城主原创,基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 木宛城主(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值