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 相关文章推荐
使Ext的Template可以解析二层的json数据的方法
Dec 22 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
jquery配合css简单实现返回顶部效果
Sep 30 Javascript
jQuery中的each()详细介绍(推荐)
May 25 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
JS实现读取xml内容并输出到div中的方法示例
Apr 19 Javascript
详解React 服务端渲染方案完美的解决方案
Dec 14 Javascript
js利用拖放实现添加删除
Aug 27 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 Javascript
在vue中使用eslint,配合vscode的操作
Nov 09 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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
php 操作符与控制结构
2012/03/07 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
深入学习js瀑布流布局
2016/10/14 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
Move.js入门
2017/02/08 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
go语言计算两个时间的时间差方法
2015/03/13 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
对numpy中shape的深入理解
2018/06/15 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
运动员获奖感言
2014/08/15 职场文书
最美护士演讲稿
2014/08/27 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
初中毕业生自我评价
2015/03/02 职场文书
保外就医申请书范文
2015/08/06 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
mysql如何能有效防止删库跑路
2021/10/05 MySQL
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python