模态弹出框依赖于Bootstrap提供的js文件,可以单独引入modal.js,也可以直接引入bootstrap.js。

模态弹出框的结构
Bootstrap框架中的模态弹出框,使用了“modal”、“modal-dialog”和“modal-content”样式。
“modal-content”中是弹出窗真正的内容,主要包括三个部分:
弹出框头部,使用“modal-header”,主要包括标题和关闭按钮
弹出框主体,使用“modal-body”,弹出框的主要内容
弹出框脚部,使用“modal-footer”,主要放置操作按钮
例如:
<div class="modal show">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
class="sr-only">Close</span></button>
<h4 class="modal-title">模态弹出窗标题</h4>
</div>
<div class="modal-body">
<p>模态弹出窗主体</p>
</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>
</div>
</div>
模态弹出窗样式的关键是modal-content。modal-content主要设置了弹出窗的边框、边距、背景色和阴影,实现源码如下:
.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,主要是控制一些间距的样式。modal-footer一般是用来放置按钮,所以底部还对包含的按钮做了一定的样式处理。实现源码如下:
.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 .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;
}
模态弹出框的实现原理
模态弹出窗是固定在浏览器中的
实现源码如下:
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
在全屏状态下,模态弹出窗宽度是自适应的,而且modal-dialog水平居中。实现源码如下:
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
当浏览器视窗大于768px时,模态弹出窗的宽度为600px。实现源码如下:
@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;
}
}
模态弹出窗底部有一个透明的黑色蒙层效果,实现源码如下:
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #000;
}
它有一个过渡动画,从fade到in,把opacity值从0变成了0.5。实现源码如下:
.modal-backdrop.fade {
filter: alpha(opacity=0);
opacity: 0;
}
.modal-backdrop.in {
filter: alpha(opacity=50);
opacity: .5;
}
声明式触发模态弹出窗
使用button触发
需要使用两个属性:data-toggle和data-target。data-toggle必须设置为modal;data-target一般情况设置为模态弹出窗的ID值。例如:
<button type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-primary">触发模态弹出窗</button> <div class="modal" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <!-- 模态弹出窗内容 --> </div> </div> </div>
使用a标签触发
链接元素自带的href属性可以替代data-target属性,例如:
<a data-toggle="modal" href="#mymodal" class="btn btn-primary" >触发模态弹出窗</a> <div class="modal" id="mymodal" > <div class="modal-dialog" > <div class="modal-content" > <!-- 模态弹出窗内容 --> </div> </div> </div>
为弹出框增加过度动画效果
给“.modal”增加类名“fade”即可。
实现源码如下:
.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: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
JavaScript代码式触发模态弹出框
例如:
<button type="button" class="btn btn-primary" id="mybtn">触发模态弹出窗</button> <div class="modal" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <!-- 模态弹出窗内容 --> </div> </div> </div>
然后添加Javascript代码:
$(function(){
$("#mybtn").click(function(){
$("#mymodal").modal();
});
});
本文系列教程整理到:Bootstrap基础教程 专题中,欢迎点击学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Bootstrap模态弹出框
# Bootstrap弹出框
# bootstrap modal弹出框的垂直居中
# Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
# Bootstrap实现带动画过渡的弹出框
# Bootstrap教程JS插件弹出框学习笔记分享
# 简介BootStrap model弹出框的使用
# JS组件Bootstrap实现弹出框效果代码
# Bootstrap每天必学之弹出框(Popover)插件
# BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
# 关于Bootstrap弹出框无法调用问题的解决办法
# JS组件Bootstrap实现弹出框和提示框效果代码
# 弹出
# 模态
# 窗内
# 设置为
# 主要包括
# 有一个
# 中有
# 可以直接
# 主要内容
# 自带
# 全屏
# 还对
# 大家多多
# 自适应
# 背景色
# 主要是
# 脚部
# 变成了
# 器中
# 使用了
相关文章:
如何获取PHP WAP自助建站系统源码?
如何在阿里云部署织梦网站?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
济南企业网站制作公司,济南社保单位网上缴费步骤?
网页设计网站制作软件,microsoft office哪个可以创建网页?
高端建站如何打造兼具美学与转化的品牌官网?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
威客平台建站流程解析:高效搭建教程与设计优化方案
家庭服务器如何搭建个人网站?
如何用PHP快速搭建CMS系统?
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何选择高效可靠的多用户建站源码资源?
Python多线程使用规范_线程安全解析【教程】
建站主机与服务器功能差异如何区分?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何选择美橙互联多站合一建站方案?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
网站制作网站,深圳做网站哪家比较好?
建站之星各版本价格是多少?
韩国服务器如何优化跨境访问实现高效连接?
如何快速选择适合个人网站的云服务器配置?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何设计高效校园网站?
建设网站制作价格,怎样建立自己的公司网站?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
外贸公司网站制作哪家好,maersk船公司官网?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
北京专业网站制作设计师招聘,北京白云观官方网站?
如何在阿里云通过域名搭建网站?
已有域名和空间如何快速搭建网站?
全景视频制作网站有哪些,全景图怎么做成网页?
建站之星导航配置指南:自助建站与SEO优化全解析
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
大连网站制作公司哪家好一点,大连买房网站哪个好?
建站之星如何一键生成手机站?
已有域名如何快速搭建专属网站?
,想在网上投简历,哪几个网站比较好?
如何挑选优质建站一级代理提升网站排名?
安云自助建站系统如何快速提升SEO排名?
建站之星如何修改网站生成路径?
*请认真填写需求信息,我们会在24小时内与您取得联系。