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 相关文章推荐
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
js实现右键菜单功能
Nov 28 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
jquery中绑定事件的异同
Feb 28 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 Javascript
antd Select下拉菜单动态添加option里的内容操作
Nov 02 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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php mail to 配置详解
2014/01/16 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
经验几则 推荐
2006/09/05 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
分析JS单线程异步io回调的特性
2017/12/01 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Django更新models数据库结构步骤
2020/04/01 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
中国梦读书活动总结
2014/07/10 职场文书
村安全生产责任书
2014/08/25 职场文书
设备收款委托书范本
2014/10/02 职场文书
2014年度思想工作总结
2014/11/27 职场文书
导游词之山东八大关
2019/12/18 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle