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 OFFICE控件测试代码
Dec 08 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
Aug 13 Javascript
JS增加行复制行删除行的实现代码
Nov 09 Javascript
JavaScript日期类型的一些用法介绍
Mar 02 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
Oct 19 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
JavaScript实现图片滑动切换的代码示例分享
Mar 06 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php网页病毒清除类
2014/12/08 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
javascript Keycode对照表
2009/10/24 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
详解Python学习之安装pandas
2019/04/16 Python
Python requests接口测试实现代码
2020/09/08 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
品管员岗位职责
2013/11/10 职场文书
学生党员检讨书范文
2014/12/27 职场文书
护士个人年度总结范文
2015/02/13 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
开工典礼致辞
2015/07/29 职场文书
导游词之广西漓江
2019/11/02 职场文书