Bootstrap组件——模态弹窗

一、模态弹窗

  1. 弹出模态框是用HTML、CSS和Javascript构建的,它们位于文档中其它表现元素之上,并从<body>中删除滚动事件,以便模态框自身的内容能得到滚动。
  2. 点击模态框的“backdrop”(灰背景区域),将自动关闭动态模块框。
  3. Bootstrap一次只支持一个模态窗口,不支持嵌套模式,因为我们相信那样叠加会造成用户体验不佳。

1.基本

当用户viewport 视口(弹出内容区)或设备的模态变得较长时,它们会自动滚动页面。
如果只要弹出模态而不需要淡入淡出效果,模态窗元素中定义 .fade 即可。

<div class="modal fade" id="modal1">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>//可直接关闭,也可以灰色区域
				</button>
			</div>
			<div class="modal-body">
					Cras mattis consectetur purus sit amet fermentum. Cras justo odio, 
					dapibus ac facilisis in, egestas eget quam. Morbi leo risus, 
					porta ac consectetur ac, vestibulum at eros.
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>
<button class="btn btn-primary" data-toggle="modal" data-target="#modal1">普通模态框</button>

在这里插入图片描述

2.垂直居中

将 .modal-dialog-centered 添加到 .modal-dialog 对话框以垂直居中模式。

<div class="modal fade" id="modal2">
	<div class="modal-dialog modal-dialog-centered">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
					垂直居中的模态框
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>

在这里插入图片描述

3.包含栅格系统

<div class="modal fade" id="modal3">
	<div class="modal-dialog modal-dialog-centered">	<!-- modal-dialog-centered这个class要加在这里 -->
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
				<div class="container-fluid">
					<div class="row">
						<div class="col-md-4 bg-info border">1</div>
						<div class="col-md-4 bg-info border">2</div>
						<div class="col-md-4 bg-info border">3</div>
						<div class="col-md-12 bg-info border">4</div>
					</div>
					<div class="row">
						<div class="col bg-info border">1</div>
						<div class="col bg-info border">2</div>
						<div class="col bg-info border">3</div>
						<div class="col bg-info border">4</div>
					</div>
					<div class="row">
						<div class="col-md-5 bg-info">1</div>
						<div class="col-md-4 bg-info ml-auto">2</div>
					</div>
					<div class="row mt-3">
						<div class="col-xl-2 col-lg-3 col-md-4 col-sm-6 col-12  bg-info border">超大屏6个,大屏4个,中等屏3个,小屏2个,超小屏1</div>
						<div class="col-xl-2 col-lg-3 col-md-4 col-sm-6 col-12  bg-info border">超大屏6个,大屏4个,中等屏3个,小屏2个,超小屏1</div>
					</div>
				</div>
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>

在这里插入图片描述

4.模态框相同内容不同

<div class="modal fade" id="modal4">
	<div class="modal-dialog modal-dialog-centered">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
				<form action="#">
					<div class="form-group">
						<label for="username" class="col-form-label">用户名:</label>
						<input type="text" class="form-control" id="username">
					</div>
					<div class="form-group">
						<label for="comment" class="col-form-label">评论:</label>
						<textarea class="form-control" id="comment"></textarea>
					</div>
				</form>
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>
<button class="btn btn-success" data-toggle="modal" data-target="#modal4" data-whatever="jimo">模态框相同内容不同</button>
<button class="btn btn-success" data-toggle="modal" data-target="#modal4" data-whatever="lwc">模态框相同内容不同</button>
<button class="btn btn-success" data-toggle="modal" data-target="#modal4" data-whatever="吃瓜群众">模态框相同内容不同</button>
<script>
	$('#modal4').on('show.bs.modal',function(ev){
		/*
			1、$(ev.relatedTarget)	这什值为点击的那个button
			2、.data('whatever')	这个是获取data-开关的属性的值
			*/

		var value=$(ev.relatedTarget).data('whatever');

		$(this).find('.modal-title').text('新评论来自于:'+value);
		$(this).find('.modal-body input').val(value);
	});
</script>

在这里插入图片描述

5.尺寸大小

在这里插入图片描述

<div class="modal fade bd-example-modal-xl" id="modal5">	
<!-- 这里添加.bd-example-modal-xl{lg、sm} -->
	<div class="modal-dialog modal-xl">	<!-- 这里添加.modal-xl -->
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
				超大尺寸模态框
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>

在这里插入图片描述

6.data属性

data属性,需要添加在button身上

data-backdrop 是否显示遮罩层
data-keyboard 按esc是否关闭模态框
data-focus 让模态框获取到焦点
data-show 初始化时模态框是否显示

<div class="modal fade" id="modal8">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
				data属性
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>
<button class="btn btn-dark" data-toggle="modal" data-target="#modal8" 
data-backdrop="true" data-keyboard="false" data-focus="true" data-show="false">
data属性</button>

7.Tooltips工具提示和弹出提示框

当模态框关闭时,其包含的任何提示和Pop提示都会同步关闭。

<div class="modal-body">
  <h5>Popover in a modal</h5>
  <p>This 
  	<a href="#" role="button" class="btn btn-secondary popover-test" title="Popover title" 
  	data-content="Popover body content is set in this attribute.">button</a> 
  	triggers a popover on click.</p>
  <hr>
  <h5>Tooltips in a modal</h5>
  <p><a href="#" class="tooltip-test" title="Tooltip">This link</a> and 
  	<a href="#" class="tooltip-test" title="Tooltip">that link</a>
  	 have tooltips on hover.</p>
</div>

在这里插入图片描述

8.方法与事件

<div class="modal fade" id="myModal">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">标题</h5>
				<button class="close" data-dismiss="modal">
					<span>&times;</span>
				</button>
			</div>
			<div class="modal-body">
				data属性
			</div>
			<div class="modal-footer">
				<button class="btn btn-secondary" data-dismiss="modal">关闭</button>
				<button class="btn btn-primary">保存</button>
			</div>
		</div>
	</div>
</div>
<button class="btn btn-warning" id="myBtn">方法与事件</button>
<script>
	$('#myBtn').click(function(){
		$('#myModal').modal('show');
	});
	/* $('#myModal').modal('show');
	setTimeout(function(){
		$('#myModal').modal('hide');
	},2000); */
	//事件
	$('#myModal').on('show.bs.modal', function (e) {
		console.log('显示前');
	});
	$('#myModal').on('shown.bs.modal', function (e) {
		console.log('完全显示了');
	});
	$('#myModal').on('hide.bs.modal', function (e) {
		console.log('隐藏前');
	});
	$('#myModal').on('hidden.bs.modal', function (e) {
		console.log('完全隐藏了');
	});
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值