jQuery弹出层始终垂直居中相对于屏幕或当前窗口


Posted in Javascript onApril 01, 2013

弹出层永远是一个前端必须搞定的东西,一般情况下,如果弹出层有固定的高和宽,用样式即可搞定,但是如果碰到没有固定高或者固定宽或者固定高和宽的时候,我们就需要用JS去处理,去动态获取当前窗口高或者宽;今天弄了2种情况,一个是相对于屏幕窗体,一个是相对于当前的窗口,看代码,或许对你有用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>无标题文档</title> 
<style> 
body{margin:0px;padding:0px} 
#div1{background:#F00;color: #FFF; display:none;position:absolute;} 
#div2{background:#333333;color: #FFF;width:400px;display:none; position:absolute;} 
</style> 
<Script type="text/javascript" src="http://jt.875.cn/js/jquery.js"></script> 
//浏览器窗口垂直居中 
<!-- 
<Script type="text/javascript"> 
function popup(popupName){ 
var _scrollHeight = $(document).scrollTop(),//获取当前窗口距离页面顶部高度 
_windowHeight = $(window).height(),//获取当前窗口高度 
_windowWidth = $(window).width(),//获取当前窗口宽度 
_popupHeight = popupName.height(),//获取弹出层高度 
_popupWeight = popupName.width();//获取弹出层宽度 
_posiTop = (_windowHeight - _popupHeight)/2 + _scrollHeight; 
_posiLeft = (_windowWidth - _popupWeight)/2; 
popupName.css({"left": _posiLeft + "px","top":_posiTop + "px","display":"block"});//设置position 
} 
$(function(){ 
$(".btn1").click(function(){ 
popup($("#div1")); 
}); 
$(".btn2").click(function(){ 
popup($("#div2")); 
}); 
}); 
</script> 
--> 
//当前窗口垂直居中 
<Script type="text/javascript"> 
function popup(popupName){ 
_windowHeight = $(".wrap").height(),//获取当前窗口高度 
_windowWidth = $(".wrap").width(),//获取当前窗口宽度 
_popupHeight = popupName.height(),//获取弹出层高度 
_popupWeight = popupName.width();//获取弹出层宽度 
_posiTop = (_windowHeight - _popupHeight)/2; 
_posiLeft = (_windowWidth - _popupWeight)/2; 
popupName.css({"left": _posiLeft + "px","top":_posiTop + "px","display":"block"});//设置position 
} 
$(function(){ 
$(".btn1").click(function(){ 
popup($("#div1")); 
}); 
$(".btn2").click(function(){ 
popup($("#div2")); 
}); 
}); 
</script> 
</head> 
<body > 
<div > 
<input class="btn1" type="button" value="1"/></div> 
<input class="btn2" type="button" value="2"/></div> 
<div style="width:500px; background:#ccc; position:relative; top:100px; left:200px;" class="wrap"> 
我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊 
<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊 
<div id="div1">我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊</div> 
<div id="div2">我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊</div> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
Fixie.js 自动填充内容的插件
Jun 28 Javascript
单击某一段文字改写文本颜色
Jun 06 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
vue.js评论发布信息可插入QQ表情功能
Aug 08 Javascript
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
JavaScript实现10秒后再次获取验证码
Dec 02 Javascript
基于vuex实现购物车功能
Jan 10 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
js 获取(接收)地址栏参数值的方法
Apr 01 #Javascript
表格单元格交错着色实现思路及代码
Apr 01 #Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
Apr 01 #Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 #Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 #Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 #Javascript
点击隐藏页面左栏或右栏实现js代码
Apr 01 #Javascript
You might like
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
安全生产网格化管理实施方案
2014/03/01 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书