`
9秒学院
  • 浏览: 37429 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

bootstrap模态弹出框

阅读更多
模态弹出框(Modals)

这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js。

右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件。

样式代码:

☑ LESS版本:modals.less

☑ Sass版本:_modals.scss

☑ 编译后的Bootstrap:对应bootstrap.css文件第5375行~第5496行

在 Bootstrap 框架中把模态弹出框统一称为 Modal。这种弹出框效果在大多数 Web 网站的交互中都可见。比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作,也有可能弹出的是一张图片。如下图所示:

mii

模态弹出框--结构分析

Bootstrap框架中的模态弹出框,分别运用了“modal”、“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-content”中,其主要又包括三个部分:

☑ 弹出框头部,一般使用“modal-header”表示,主要包括标题和关闭按钮

☑ 弹出框主体,一般使用“modal-body”表示,弹出框的主要内容

☑ 弹出框脚部,一般使用“modal-footer”表示,主要放置操作按钮

模态弹出窗的结构如下:


    
        
            
                ×Close
                模态弹出窗标题
            
            
                模态弹出窗主体内容
            
            
                关闭
                保存
            
        
    

弹出窗的主体样式实现:

但是对于一个模态弹出窗而言,modal-content才是样式的关键。其主要设置了弹出窗的边框、边距、背景色和阴影等样式。

/*bootstrap.css文件第5412行~第5423行*/
.modal-content {
  position: relative;
  background-color: #fff;
  -webkit-background-clip: padding-box;
          background-clip: padding-box;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, .2);
  border-radius: 6px;
  outline: 0;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
除此之外,modal-content中的modal-header、modal-body和modal-footer三个部分样式设置:

/*bootstrap.css文件第5441行~第5461行*/
.modal-header {
  min-height: 16.42857143px;
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
这三个部分主要控制一些间距的样式。而modal-footer都是用来放置按钮,所以底部还对包含的按钮做了一定的样式处理。

/*bootstrap.css文件第5462行~第5471行*/
.modal-footer .btn + .btn {
  margin-bottom: 0;
  margin-left: 5px;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}


模态弹出框--实现原理解析(一)

实现原理解析:

bootstrap中的“模态弹出框”有以下几个特点:

1、模态弹出窗是固定在浏览器中的。

2、单击右侧全屏按钮,在全屏状态下,模态弹出窗宽度是自适应的,而且modal-dialog水平居中。

3、当浏览器视窗大于768px时,模态弹出窗的宽度为600px。

固定在浏览器(源代码)实现:

/*bootstrap.css文件第5379行~第5389行*/
.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
水平居中(源代码)实现:

/*bootstrap.css文件第5407行~第5411行*/
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
当浏览器视窗大于768px时,模态弹出窗的宽度为600px(源代码)实现:

/*bootstrap.css文件第5479行~第5491行*/
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
  }
  .modal-sm {
    width: 300px;
  }
}
模态弹出框--实现原理解析(二)

蒙板样式实现:

大家或许注意到了,在做模态弹出窗时,底部常常会有一个透明的黑色蒙层效果:

在Bootstrap框架中为模态弹出窗也添加了一个这样的蒙层样式“modal-backdrop”,只不过他默认情况下是全屏黑色的:

/*bootstrap.css文件第5424行~第5432行*/
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
同样,给其添加了一个过渡动画,从fade到in,把opacity值从0变成了0.5。上图展示的就是in状态下的效果:

/*bootstrap.css文件第5433行~第5440行*/
.modal-backdrop.fade {
  filter: alpha(opacity=0);
  opacity: 0;
}
.modal-backdrop.in {
  filter: alpha(opacity=50);
  opacity: .5;
}
两种尺寸选择:

除此之外,Bootstrap框架还为模态弹出窗提供了不同尺寸,一个是大尺寸样式“modal-lg”,另一个是小尺寸样式“modal-sm”。其结构上稍做调整:



     ... 
    


... 
    

对于这两种尺寸的模态弹出窗,Bootstrap在媒体查询中做过处理:代码同上见bootstrap.css

模态弹出框--触发模态弹出窗2种方法

众所周知,模态弹出窗在页面加载完成时,是被隐藏在页面中的,只有通过一定的动作(事件)才能触发模态弹出窗的显示。在Bootstrap框架中实现方法有2种,接下来分别来介绍这2种触发模态弹出窗的使用方法。

声明式触发方法:

方法一:模态弹出窗声明,只需要自定义两个必要的属性:data-toggle和data-target(bootstrap中声明式触发方法一般依赖于这些自定义的data-xxx 属性。比如data-toggle="" 或者 data-dismiss="")。例如:


点击我会弹出模态弹出窗


    
        
        
        
    

注意以下事项:

1、data-toggle必须设置为modal(toggle中文翻译过来就是触发器);

2、data-target可以设置为CSS的选择符,也可以设置为模态弹出窗的ID值,一般情况设置为模态弹出窗的ID值,因为ID值是唯一的值。

方法二:触发模态弹出窗也可以是一个链接元素,那么可以使用链接元素自带的href属性替代data-target属性,如:


点击我会弹出模态弹出窗


    
        
        
        
    

不过建议还是使用统一使用data-target的方式来触发。

模态弹出框--为弹出框增加过度动画效果

为模态弹出框增加过度动画效果:

可通过给“.modal”增加类名“fade”为模态弹出框增加一个过渡动画效果。


小的模态弹出窗

    
        
            
                ×Close
                模态弹出窗标题
            
            
                模态弹出窗主体内容
            
            
                关闭
                保存
            
        
    

源代码实现:

/*bootstrap.css文件第5390行~第5402行*/
.modal.fade .modal-dialog {
  -webkit-transition: -webkit-transform .3s ease-out;
       -o-transition:      -o-transform .3s ease-out;
          transition:         transform .3s ease-out;
  -webkit-transform: translate3d(0, -25%, 0);
       -o-transform: translate3d(0, -25%, 0);
          transform: translate3d(0, -25%, 0);
}

.modal.in .modal-dialog {
  -webkit-transform: translate3d(0, 0, 0);
       -o-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}
模态弹出框--模态弹出窗的使用(data-参数说明)

除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗。比如说:是否有灰色背景modal-backdrop,是否可以按ESC键关闭模态弹出窗。有关于Modal弹出窗自定义属性相关说明如下所示:

ssssm



avaScript触发方法

除了使用自定义属性触发模态弹出框之外,还可以通过JavaScript方法来触发模态弹出窗。通过给一个元素一个事件,来触发。比如说给一个按钮一个单击事件,然后触发模态弹出窗。如下面的一个简单示例:


点击我


    
        
            
                ×Close
                模态弹出窗标题
            
            
                模态弹出窗主体内容
            
            
                关闭
                保存
            
        
    

JavaScript触发的弹出窗代码:

$(function(){
  $(".btn").click(function(){
    $("#mymodal").modal();
  });
});
比如你不想让用户按ESC键关闭模态弹出窗,你就可以这样做:

$(function(){
    $(".btn").click(function(){
        $("#mymodal").modal({
            keyboard:false
        });
    });
});
事件调用方法也非常简单:

$('#myModal').on('hidden.bs.modal', function (e) {
    // 处理代码...
})

分享到:
评论

相关推荐

    整理关于Bootstrap模态弹出框的慕课笔记

    《深入理解Bootstrap模态弹出框》 Bootstrap模态弹出框是网页设计中常见的一种交互元素,它允许用户在不离开当前页面的情况下查看或处理额外的信息或执行操作。Bootstrap框架通过简洁的HTML、CSS和JavaScript实现了...

    bootstrap模态框弹出效果.zip

    这个"bootstrap模态框弹出效果.zip"文件包含15种不同的模态框弹出效果,对于开发者来说是一个很好的资源库,可以用来提升网站的用户体验。 Bootstrap是Twitter推出的一个开源的用于前端开发的工具集,特别注重易用...

    bootstrap weebox 支持ajax的模态弹出框

    Bootstrap Weebox是一款基于Bootstrap框架的模态弹出框插件,特别强调其对AJAX的支持和丰富的功能。它经过多次优化与改进,目前版本稳定,集成了Bootstrap的响应式设计,确保在不同设备上都能呈现出良好的用户体验。...

    15种bootstrap模态框动画弹出特效.rar

    Bootstrap模态框(Modal)是Web开发中常用的一种交互元素,它允许在当前页面上弹出一个浮动窗口,用于展示额外的信息或者进行交互操作。在Bootstrap框架中,模态框通常用于显示通知、用户确认对话框或者扩展内容等...

    BootStrap中的模态框(modal,弹出层)功能示例代码

    总结起来,Bootstrap模态框提供了一种简洁且可定制的方式,用于在网页中实现弹出对话框。通过理解并掌握其基本结构和属性,开发者可以轻松地将模态框集成到自己的项目中,提升用户体验,同时保持代码的整洁和高效。

    Bootstrap响应式模态登录框插件

    在本插件中,模态框被用作登录表单的容器,当用户触发特定事件(如点击某个按钮)时,模态框会以弹出窗口的形式出现在页面中央。 jQuery是一个轻量级的JavaScript库,它简化了JavaScript的DOM操作、事件处理和Ajax...

    可拖拽的bootstrap弹出窗口

    Bootstrap弹出窗口是一种常见于网页设计中的交互元素,它用于显示通知、消息或者提供额外的交互界面。在本项目中,我们关注的是一个可拖拽的Bootstrap弹出窗口,这意味着用户可以通过鼠标点击并拖动来改变弹出窗口的...

    15种bootstrap模态框动画弹出特效

    在这个"15种bootstrap模态框动画弹出特效"的资源中,我们可以期待看到不同类型的动画效果,这些效果可以增强用户体验,使网站更加生动有趣。 首先,让我们了解什么是Bootstrap。Bootstrap是由Twitter开发并开源的一...

    Bootstrap源码解读模态弹出框(11)

    Bootstrap模态弹出框是网页设计中常用的交互元素,它允许在不离开当前页面的情况下显示额外的信息或执行操作。在Bootstrap框架中,模态弹出框的实现涉及到HTML结构、CSS样式以及JavaScript交互。 首先,模态弹出框...

    模态框-提示框-Bootstrap

    Bootstrap模态框(Modal)是Web开发中一种常见的交互元素,它用于在当前页面上弹出一个浮动窗口,展示额外的信息或执行特定操作,而无需离开当前页面。模态框通常用于确认操作、显示详细信息或者提供表单输入等场景...

    js,bootstrap 城市弹出框

    1. **Bootstrap弹出框(Modal)**: Bootstrap的模态对话框(Modal)是其核心组件之一,常用于显示额外的内容或执行特定操作,如登录、注册、查看详情等。城市弹出框就是利用这一功能,创建一个可弹出的窗口,展示一...

    bootstrap模态窗口美化特效

    模态(Modal)是Bootstrap框架中的一个关键组件,它通过弹出一个浮动的对话框来显示内容,而不会中断用户对页面的主流程。 在这个美化特效中,开发者利用自定义的CSS样式对模态窗口进行了深度定制。CSS(层叠样式表...

    Bootstrap模态对话框中显示动态内容的方法

    添加按钮,点击弹出模态窗体: <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modal" href="/Home/Test" rel="external nofollow" ></button> 创建模态对话框: <div...

    Bootstrap弹出框

    Bootstrap弹出框,也称为模态对话框或信息框,是Bootstrap框架中一个非常重要的组件。这个组件在网页设计中广泛使用,用于显示警告、询问用户输入或者展示详细信息等场景。Bootstrap弹出框通过JavaScript插件实现,...

    JS组件Bootstrap实现弹出框和提示框效果代码

    Bootstrap的弹出框是内置于`bootstrap.js`和`bootstrap.css`文件中的,因此只需引入这些库,就能轻松使用弹出框组件。下面是一个基本的弹出框HTML结构示例: ```html <span aria-hidden="true">× ...

    bootstrap模态框弹出效果

    Bootstrap模态框(Modal)是Web开发中常用的一种交互元素,它允许在当前页面上以弹出窗口的形式展示内容,而无需跳转到新的页面。Bootstrap框架提供了丰富的模态框功能,包括动画效果、可定制的样式以及方便的API,...

Global site tag (gtag.js) - Google Analytics