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 相关文章推荐
基于jQuery捕获超链接事件进行局部刷新代码
May 10 Javascript
jquery动态加载js/css文件方法(自写小函数)
Oct 11 Javascript
jQuery向后台传入json格式数据的方法
Feb 13 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
Jan 03 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
Vue+axios封装请求实现前后端分离
Oct 23 Javascript
jquery插件实现图片悬浮
Apr 16 jQuery
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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
JQuery 写的个性导航菜单
2009/12/24 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
连接Python程序与MySQL的教程
2015/04/29 Python
python目录与文件名操作例子
2016/08/28 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python 读取修改pcap包的例子
2019/07/23 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
学校门卫工作职责
2013/12/07 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
挂职锻炼个人总结
2015/03/05 职场文书