js弹出层永远居中实现思路及代码


Posted in Javascript onNovember 29, 2013

弹出层窗口永远居中

<script type="text/javascript"> 
var isIE=window.XMLHttpRequest?false:true; 
var aIsIE={}; 
window.onload=function(){ 
if(isIE){ 
window.onscroll=doIE; 
window.onresize=doIE; } 
function doIE(){ 
aIsIE.top=document.documentElement.scrollTop; 
aIsIE.left=document.documentElement.scrollLeft; 
var width=document.documentElement.clientWidth; 
var height=document.documentElement.clientHeight; 
var oDiv=document.getElementById("oneReply"); 
oDiv.style.top=aIsIE.top+(height-oDiv.offsetHeight)/2+'px'; 
oDiv.style.left=aIsIE.left+(width-oDiv.offsetWidth)/2+'px'; </script>

首先大家要了解一个不兼容的css样式position:fixed;

Position属性有四个可选值,它们分别是:static、absolute、fixed、relative。

我们下面来共同学习它们的不同的用法,在学习中我们应该去思考在什么布局情况下,应该使用它们其中的哪一种。

position:static 无定位该属性值是所有元素定位的默认情况,在一般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而可以用position:static取消继承,即还原元素定位的默认值。如:#nav { position:static; } 其他两种前面提过,我们 主要说的是fixed position:fixed 相对于窗口的固定定位这个定位属性值是什么意思呢?元素的定位方式同absolute类似,但它的包含块是视区本身。在屏幕媒体如WEB浏览器中,元素在文档滚动时不会在浏览器视察中移动。例如,它允许框架样式布局。在页式媒体如打印输出中,一个固定元素会出现于第一页的相同位置。这一点可用于生成流动标题或脚注。我们也见过相似的效果,但大都数效果不是通过CSS来实现了,而是应用了JS脚本。请特别注意,IE6不支持……

这里我们用position:fixed;+ “hack技术” +“javascript”;结合来解决这一问题
js弹出层永远居中实现思路及代码 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/1999/xhtml/TR/xhtml/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 type="text/css"> 
body,div{margin:0; padding:0;} 
#a{width:200px;height:200px;background:blue;position:fixed;left:50%;top:50%;margin-left:-100px;margin-top:-100px;_position:absolute;} 
< /style> 
< script type="text/javascript"> 
var isIE=window.XMLHttpRequest?false:true; 
var aIsIE={}; 
window.onload=function(){ 
if(isIE){ 
window.onscroll=doIE; 
window.onresize=doIE; } 
function doIE(){ 
aIsIE.top=document.documentElement.scrollTop; 
aIsIE.left=document.documentElement.scrollLeft; 
var width=document.documentElement.clientWidth; 
var height=document.documentElement.clientHeight; 
var oDiv=document.getElementById("a"); 
oDiv.style.top=aIsIE.top+(height-oDiv.offsetHeight)/2+'px'; 
oDiv.style.left=aIsIE.left+(width-oDiv.offsetWidth)/2+'px';< /script> 
< /head> 
< body style="width:100%;"> 
< div id="a"></div> 
< br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> 
< /body> 
< /html>
Javascript 相关文章推荐
js常用代码段整理
Nov 30 Javascript
jquery获取当前日期的方法
Jan 14 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
jQuery检测某个元素是否存在代码分享
Jul 09 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
简单理解vue中实例属性vm.$els
Dec 01 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
微信小程序实现录音时的麦克风动画效果实例
May 18 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
Apr 20 Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 Javascript
如何开发一个渐进式Web应用程序PWA
May 10 Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 #Javascript
JS取文本框中最小值的简单实例
Nov 29 #Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 #Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 #Javascript
JS求平均值的小例子
Nov 29 #Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
Nov 29 #Javascript
JS小功能(button选择颜色)简单实例
Nov 29 #Javascript
You might like
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
Vue的MVVM实现方法
2017/08/16 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python多线程爬虫简单示例
2016/03/04 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python交互式图形编程实例(一)
2017/11/17 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
物流业务员岗位职责
2014/02/08 职场文书
大学应届生的自我评价
2014/03/06 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书