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的内存泄漏
Mar 04 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
javascript判断图片是否加载完成的方法推荐
May 13 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
js原生之焦点图转换加定时器实例
Dec 12 Javascript
原生JS轮播图插件
Feb 09 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
js字符串类型String常用操作实例总结
Jul 05 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
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
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
深入解析Python中的urllib2模块
2015/11/13 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
金融专业个人求职信
2013/09/22 职场文书
高中生学习生活的自我评价
2013/10/09 职场文书
毕业生机械建模求职信
2013/10/14 职场文书
行政总监岗位职责
2013/12/05 职场文书
九年级家长会邀请函
2014/01/15 职场文书
九年级体育教学反思
2014/01/23 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
如何获取numpy array前N个最大值
2021/05/14 Python
SQL Server实现分页方法介绍
2022/03/16 SQL Server