Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法


Posted in Javascript onAugust 08, 2013

这两天要用到正好练练手,比想象中碰到的问题要多,比如:
ie6背景透明 ie6居中显示 还有对js对象的理解
openID=显示按钮,conID=需要显示的div,closeID=关闭按钮
解决了:
1.可以遮挡ie6下的select元素 但是在ie6下div没有透明度
2.弹出的div可以一直在浏览器屏幕中间显示
问题:
1.目前不支持.class 只支持#id
2.需要显示的div需要自己设置css
3.在ie6下需要设置css
例如div {_position: absolute;_top: expression(documentElement.scrollTop + 340 + "px"); }
4.ie6下背景div没有透明度 这里我上网搜到的结果都不能解决 如果您有方法请给我留言

<!DOCTYPE HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Js制作简单弹出层DIV在页面居中 中间显示 遮罩 方法</title>
<style type="text/css">
*{margin:0;padding:0;}
#bt{border: 2px solid #000;background-color: #ccc;cursor: pointer;padding: 2px 5px;}
/****订单弹出框*****/
.orderMsg{ position:fixed;_position: absolute;_top: expression(documentElement.scrollTop + 340 + "px"); background:#fff; border:1px solid #939395; width:500px; height:340px;top: 50%;left: 50%;margin: -200px 0 0 -250px; overflow:hidden; z-index:99999; font-size:14px; color:#000; display:none;}
.orderMsg dl{ overflow:hidden; padding:20px; margin:0;}
.orderMsg dl dt{ line-height:30px;}
.orderMsg dl dd{ line-height:25px; height:25px; padding-left:10px; margin:0;}
.orderMsg dl dd label{ padding-left:5px;}
.orderMsg dl dd.cBtn{ width:102px; height:28px; background:url(../images/member/chooseBtn.gif) no-repeat; margin-top:10px; padding:0;}
.orderMsg dl dd.cBtn a{ display:block; text-align:center;}
.orderMsg dl dd.cBtn a:link,.orderMsg dl dd.cBtn a:visited{ color:#000;}
.orderMsg dl dd.lBtn{ float:left; display:inline; margin-left:100px;}
.orderMsg dl dd.rBtn{ float:left; display:inline; margin-left:10px;}
</style>
</head>
<body>
<a id="bt">点击弹出div</a>
<div style="height:1000px;">
sdfdsf
<select>
<option>Volvo</option>
<option selected="selected">Saab</option>
<option>Mercedes</option>
<option>Audi</option>
</select>
</div>
<a id="bt">点击弹出div</a>
<div style="height:1000px;">
sdfdsf
<select>
<option>Volvo</option>
<option selected="selected">Saab</option>
<option>Mercedes</option>
<option>Audi</option>
</select>
</div>
<div id="orderMsg" class="orderMsg" style="display: none;">
<dl>
<dt>请您告知我们取消订单的原因,以便我们改进。非常感谢!</dt>
<dd><input type="radio" name="reason" id="reason1"><label for="reason1">改变主意,现在不想买了</label></dd>
<dd><input type="radio" name="reason" id="reason2"><label for="reason2">刚才信息填错了,要重新下单</label></dd>
<dd><input type="radio" name="reason" id="reason3"><label for="reason3">先取消,再更换或添加新商品</label></dd>
<dd><input type="radio" name="reason" id="reason4"><label for="reason4">网银,信用卡等支付有问题</label></dd>
<dd><input type="radio" name="reason" id="reason5"><label for="reason5">等待时间过长,不耐烦了</label></dd>
<dd><input type="radio" name="reason" id="reason6"><label for="reason6">商品价格较贵</label></dd>
<dd><input type="radio" name="reason" id="reason7"><label for="reason7">出现商品缺货情况</label></dd>
<dd><input type="radio" name="reason" id="reason8"><label for="reason8">其它的原因</label></dd>
<dd><input type="radio" disabled="disabled"><label>72小时到期自动取消(不可选)</label></dd>
<dd class="cBtn lBtn"><a href="#">选好了</a></dd><dd class="cBtn rBtn"><a href="#" onclick="" id="close">点击取消</a></dd>
</dl>
</div>
<script type="text/javascript">
/*
openID=显示按钮,conID=需要显示的div,closeID=关闭按钮
解决了:
1.可以遮挡ie6下的select元素 但是在ie6下div没有透明度
2.弹出的div可以一直在浏览器屏幕中间显示
问题:
1.目前不支持.class 只支持#id
2.需要显示的div需要自己设置css
3.在ie6下需要设置css
例如div {_position: absolute;_top: expression(documentElement.scrollTop + 340 + "px"); }
4.ie6下背景div没有透明度 这里我上网搜到的结果都不能解决 如果您有方法请给我留言
*/
var _CalF = { //便捷方法
$ : function(id){return document.getElementById(id)},
create : function(id){return document.createElement(id)},
append : function(id){return document.body.appendChild(id)},
remove : function(id){return document.body.removeChild(id)}
}
function popup(openID,conID,closeID){
this.onclick(openID,conID,closeID);
}
popup.prototype = {
cssStyle : "width:100%;position:absolute;left:0;top:0;filter:alpha(opacity = 50);opacity:0.5;border:0;overflow:auto;",
createShadowDiv : function(){ //背景遮罩
var shadowDiv = _CalF.create("div");
shadowDiv.id = "shadowDiv";
shadowDiv.style.cssText = this.cssStyle;
shadowDiv.style.height = document.body.scrollHeight + "px";
shadowDiv.style.backgroundColor = "#000"
shadowDiv.style.zindex = 100;
_CalF.append(shadowDiv);
},
createIframe : function(){ //iframe
var iframe = _CalF.create("iframe");
iframe.id = "shadowIframe";
iframe.style.cssText = this.cssStyle;
iframe.style.height = document.body.scrollHeight + "px";
iframe.style.zindex = 99;
_CalF.append(iframe);
},
removeDiv : function(){
_CalF.remove(_CalF.$("shadowDiv"));
_CalF.remove(_CalF.$("shadowIframe"));
},
onclick : function(openID,conID,closeID){
var that = this; 
_CalF.$(openID).onclick = function(){
if(window.ActiveXObject){ //ie6
if(!window.XMLHttpRequest){
document.body.style.cssText = "_background-image: url(about:blank);_background-attachment: fixed;";
}
} 
that.createIframe();
that.createShadowDiv();
_CalF.$(conID).style.display = "block";
}
document.getElementById(closeID).onclick = function(){
_CalF.$(conID).style.display = "none";
that.removeDiv(); 
}
}
}
var bt = new popup("bt","orderMsg","close");
</script>
</body>
</html>
Javascript 相关文章推荐
基于jquery的实现简单的表格中增加或删除下一行
Aug 01 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
jQuery实现图片局部放大镜效果
Mar 17 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
Nov 24 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
May 28 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 #Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 #Javascript
js获得地址栏?问号后参数的方法
Aug 08 #Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 #Javascript
js动态创建、删除表格示例代码
Aug 07 #Javascript
关于extjs4如何获取grid修改后的数据的问题
Aug 07 #Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
Aug 07 #Javascript
You might like
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Python深度优先算法生成迷宫
2018/01/22 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python创建学生成绩管理系统
2019/11/22 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
中科软测试工程师面试题
2012/06/16 面试题
总经理岗位职责
2013/11/09 职场文书
大学军训感言300字
2014/03/09 职场文书
法定授权委托证明书
2015/06/18 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript