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 相关文章推荐
用jquery修复在iframe下的页面锚点失效问题
Aug 22 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
Ionic + Angular.js实现图片轮播的方法示例
May 21 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 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
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
浅谈php7的重大新特性
2015/10/23 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
js实现文字滚动效果
2016/03/03 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
分析python动态规划的递归、非递归实现
2018/03/04 Python
Sanic框架Cookies操作示例
2018/07/17 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
django列表筛选功能的实现代码
2020/03/27 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
自我评价200字分享
2013/12/17 职场文书
三年级数学教学反思
2014/01/31 职场文书
2014年清明节寄语
2014/04/03 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
行政监察建议书
2014/05/19 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
Oracle笔记
2021/04/05 Oracle
python 离散点图画法的实现
2022/04/01 Python