js实现遮罩层弹出框的方法


Posted in Javascript onJanuary 15, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
为超链接加上disabled后的故事
Dec 10 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
基于JavaScript实现简单的随机抽奖小程序
Jan 05 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
js实现楼层导航功能
Feb 23 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
实例详解带参数的 npm script
May 28 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
jquery隔行换色效果实现方法
Jan 15 #Javascript
JavaScript中实现依赖注入的思路分享
Jan 15 #Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 #Javascript
28个常用JavaScript方法集锦
Jan 14 #Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 #Javascript
jquery移动节点实例
Jan 14 #Javascript
jquery获取checkbox的值并post提交
Jan 14 #Javascript
You might like
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php实例分享之二维数组排序
2014/05/15 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
Yii2单元测试用法示例
2016/11/12 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
Redux实现组合计数器的示例代码
2018/07/04 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python tkinter label 更新方法
2018/10/11 Python
PyTorch预训练的实现
2019/09/18 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
python实现简单图书管理系统
2019/11/22 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
爱心捐书活动总结
2014/07/05 职场文书
办理房产证委托书
2014/09/18 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
php 原生分页
2021/04/01 PHP
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
最新最全的手机号验证正则表达式
2022/02/24 Javascript
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android