jQuery点击按钮弹出遮罩层且内容居中特效


Posted in Javascript onDecember 14, 2015

本文为大家分享了jQuery点击按钮弹出遮罩层且内容居中的特效,下面来看最终实现的效果:

jQuery点击按钮弹出遮罩层且内容居中特效

由于是测试的程序,所以我未加关闭的按钮。
一、主体程序

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>弹出居中遮罩</title>
  <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  <link rel="stylesheet" type="text/css" href="css/layout.css"/>
 </head>
 <body>
  <section class="test">
   这里是主体内容<br />
  <input type="button" class="testButton" value="弹出遮罩" />
  </section>
  <section class="testBg">
   <section class="testCont">
    这里是弹出的内容测试
   </section>
  </section>
  <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
  <script src="js/layout.js" type="text/javascript" charset="utf-8"></script>
 </body>
</html>

二、CSS样式

*{
 margin: 0;
 padding: 0;
}
.testBg{
 position: absolute;
 top: 0;
 background-color: #000;
 filter:alpha(opacity=80); /* IE */ 
 -moz-opacity:0.8; /* Moz + FF */ 
 opacity: 0.8; /* 支持CSS3的浏览器(FF 1.5也支持)*/
 display:none ;     
}
.testBg .testCont{
 position: absolute;
 top: 0;
 left: 0;
 width:200px;
 border: 1px #ffc700 solid;
 color: #ffc700;
}

三、JS程序
这个才是本次随笔所说的重点,下面来看一段错误的JS程序:

$(function(){
 $(".testBg").height($(window).height()).width($(window).width()); //使遮罩的背景覆盖整个页面
 var testContTop=($(window).height()-$(".testCont").height())/2;  //计算弹出的框距离页面顶部的距离
 var testContWidth=($(window).width()-$(".testCont").width())/2;   //计算弹出的框距离页面左边的距离
 $(".testCont").css({
  "top":testContTop,
  "left":testContWidth
 });
 $(".testButton").click(function(){
  $(".testBg").show();
 }) 
})

上面这段程序看起来没有问题,那么来看一下输出的结果:

 jQuery点击按钮弹出遮罩层且内容居中特效

实际测量的时候上下的间距是不一致的。 

那么正确的JS程序是:

$(function(){
 $(".testBg").height($(window).height()).width($(window).width());//使遮罩的背景覆盖整个页面
 
 $(".testButton").click(function(){
  $(".testBg").show();
  showDiv();
 }) 
})
function showDiv(){
  
 var testContTop=($(window).height()-$(".testCont").height())/2; //计算弹出的框距离页面顶部的距离
 var testContWidth=($(window).width()-$(".testCont").width())/2; //计算弹出的框距离页面左边的距离
 $(".testCont").css({
  "top":testContTop,
  "left":testContWidth
 });
}

从上面程序可以看出在遮罩层弹出显示以后再执行一个函数动态的设置弹出层的背景大小和距离页面的上间距和左间距,而不是一开始加载JS时就已经设置好弹出层各项参数。

以上就是本文的全部内容,教大家如何实现点击按钮弹出遮罩层且内容居中的效果,

Javascript 相关文章推荐
js获取图片长和宽度的代码
Nov 24 Javascript
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
使用jquery实现IE下按backspace相当于返回操作
Mar 18 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
Angular 多模块项目构建过程
Feb 13 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 Javascript
keep-alive保持组件状态的方法
Dec 02 Javascript
JavaScript实现简单图片切换
Apr 29 Javascript
jquery实现倒计时效果
Dec 14 #Javascript
JavaScript 七大技巧(一)
Dec 13 #Javascript
JavaScript 七大技巧(二)
Dec 13 #Javascript
js自定义回调函数
Dec 13 #Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
Dec 13 #Javascript
分享Javascript实用方法二
Dec 13 #Javascript
JavaScript判断按钮被点击的方法
Dec 13 #Javascript
You might like
PHP学习之整理字符串
2011/04/17 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
php读取csc文件并输出
2015/05/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
幼儿教育感言
2014/02/05 职场文书
应用数学专业求职信
2014/03/14 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
搞笑婚前保证书
2015/02/28 职场文书
国庆阅兵观后感
2015/06/15 职场文书
干部培训简讯
2015/07/20 职场文书
小学运动会报道稿
2015/07/22 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
MySQL优化及索引解析
2022/03/17 MySQL