js实现遮罩层弹出框的方法
来源: 阅读:815 次 日期:2015-03-30 14:37:22
温馨提示: 小编为您整理了“js实现遮罩层弹出框的方法”,方便广大网友查阅!

这篇文章主要介绍了js实现遮罩层弹出框的方法,可实现对遮罩层弹出框的样式定义、按钮事件及相关功能的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了js实现遮罩层弹出框的方法。分享给大家供大家参考。具体分析如下:

昨天公司网站需要弹窗提示一些信息,要我在把弹窗的js代码和弹窗窗口html写在一起哪里需要就调用

不说那么多了,直接上代码,感觉肯定会有兼容问题,看到了请指出啊:

代码如下:

<style>

#H-dialog{display:none;position:absolute;z-index: 9999999;width:400px;height: auto; background-color: #fff;}

#H-dialog .close{float:right;font-size: 30px;margin-right: 10px;margin-top:5px;cursor:pointer;}

#H-dialog .title{height: 40px;padding-left:10px; font-size:20px; line-height:40px;}

#H-dialog #msgCont{height:36px; margin: 30px 0 50px;padding-left: 65px;font-size: 25px;line-height: 36px;vertical-align: middle; background: url(../Images/ui_alert.png) no-repeat 20px 50%;}

</style>

<div id="H-dialog">

<a class="close" onclick="popupClose(this)">×</a>

<div class="title">提示</div>

<div id="msgCont">内容</div>

</div>

<script type="text/javascript">

//锁定背景屏幕

function lockScreen() {

var clientH = document.body.offsetHeight; //body高度

var clientW = document.body.offsetWidth; //body宽度

var docH = document.body.scrollHeight; //浏览器高度

var docW = document.body.scrollWidth; //浏览器宽度

var bgW = clientW > docW ? clientW : docW; //取有效宽

var bgH = clientH > docH ? clientH : docH; //取有效高

var blackBg = document.createElement("div");

blackBg.id = "blackBg";

blackBg.style.position = "absolute";

blackBg.style.zIndex = "99999";

blackBg.style.top = "0";

blackBg.style.left = "0";

blackBg.style.width = bgW+"px";

blackBg.style.height = bgH+"px";

blackBg.style.opacity = "0.4";

blackBg.style.backgroundColor = "#333";

document.body.appendChild(blackBg);

}

//关闭按钮事件

function popupClose(el) {

var blackBg = document.getElementById("blackBg");

blackBg && document.body.removeChild(blackBg);

el.parentNode.style.display = "none";

}

//自动关闭

function autoClose(id) {

id = id || "H-dialog";

var blackBg = document.getElementById("blackBg");

var objDiv = document.getElementById(id);

setTimeout(function(){

blackBg && document.body.removeChild(blackBg);

objDiv.style.display = "none";

},2000);

}

/**

*功能 : 弹窗信息

*参数1 : 提示信息内容

*参数2 : 提示信息状态默认0 为提示信息,1为成功信息

*参数3 : 弹窗div的id,默认"H-dialog"

*参数4 : 弹窗内容的id,默认"msgCont"

**/

function showMsg(msg) {

msg = msg || "请重新操作";

var status = arguments[1] || 0,

popupId = arguments[2] || "H-dialog",

contentId = arguments[3] || "msgCont";

lockScreen();

//屏幕实际高宽

var pageWidth = window.innerWidth;

var pageHeight = window.innerHeight;

if (typeof pageWidth != "number") {

if (document.compatMode == "CSS1Compat") {

pageWidth = document.documentElement.clientWidth;

pageHeight = document.documentElement.clientHeight;

} else {

pageWidth = document.body.clientWidth;

pageHeight = document.body.clientHeight;

}

}

//滚动条高宽

var scrollLeft = window.document.documentElement.scrollLeft;

var scrollTop = 0;

if (typeof window.pageYOffset != 'undefined') {

scrollTop = window.pageYOffset;

} else if (typeof window.document.compatMode != 'undefined' &&

window.document.compatMode != 'BackCompat') {

scrollTop = window.document.documentElement.scrollTop;

} else if (typeof window.document.body != 'undefined') {

scrollTop = window.document.body.scrollTop;

}

var div_X = (pageWidth - 400) / 2 + scrollLeft;

var div_Y = (pageHeight - 200) / 2 + scrollTop;

var objDiv = document.getElementById(popupId);

if (status) {

document.getElementById(contentId).style.background = "url($Root/Assets/Images/ui_success.png) no-repeat 20px 50%";

}

document.getElementById(contentId).innerHTML = msg;

objDiv.style.display = "block";

objDiv.style.left = div_X + "px";

objDiv.style.top = div_Y + "px";

autoClose(popupId);

}

</script>

希望本文所述对大家的javascript程序设计有所帮助。

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map