jq实现有透明遮罩的轻量级弹窗

大致思路是:

1、先写一个弹窗的div,让其相对于浏览器来一个绝对定位(position:fixed),定在窗口可视区的中间,然后隐藏;

2、写一个遮罩层的div,给其宽高都是100%,让其相对body的绝对定位(position:absolute),定在左上角,然后隐藏;

3、给body写一个相对定位(position:relative)

4、最后用jq写点击显示,点关闭隐藏

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>轻量级的弹窗</title>
	<script type="text/javascript" src="jquery-1.11.3.js"></script>
	<style>
	body {
		margin: 0;
		padding: 0;
		position: relative;
	}
	.div1 {
		height: 2000px;
		width: 80px;
		background: red;
	}
	.box {
		height: 300px;
		width: 500px;
		border: 2px solid #ccc;
		display: none;
		position: fixed;
		top: 50%;
		left: 50%;
		margin-left: -250px;
		margin-top: -150px;
		background: #fff;
		z-index: 3;
	}
	.title {
		height: 50px;
		background: #00b7ee;
		width: 100%;
		position: relative;
	}
	span {
		height: 50px;
		line-height: 50px;
		color: #fff;
		font-size: 18px;
		margin-left: 20px;
	}
	input {
		display: block;
		margin: auto;
	}
	.bg {
		background: #000;
		opacity:0.6; 
		filter:alpha(opacity=60);
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 2;
		display: none;

	}
	img {
		position: absolute;
		top: 9px;
		right: 9px;
		cursor: pointer;
	}
	</style>
</head>
<body>

<input type="button" value="显示弹窗">

<!-- 这里是遮罩的背景的div,宽高是100%,确保遮整个页面,它的z-index要比弹窗小 -->
<div class="bg"></div>

<pre name="code" class="html"><!-- 弹窗div,它的z-index要比弹窗大 -->
<div class="box"><div class="title"><img src="images/close.png" /><span>弹窗</span></div></div><!-- 无关紧要的div,只是让其出现下拉滚动条 --><div class="div1"></div><!-- 解读:z-index的层级关系在都是position:absolute/relative的情况下才准确,还要是同一个position:relative下 --><script>$(document).ready(function(){//点击让背景和弹窗显示$('input').click(function(){$('.bg').show();$('.box').show();});//点击让背景和弹窗隐藏$('img').click(function(){$('.bg').hide();$('.box').hide();});});</script></body></html>

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值