`
jirang_team
  • 浏览: 5019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

js弹出透明背景遮罩层

 
阅读更多

 <html>
 <head>
  <script type="text/javascript">
   //创建透明遮罩层div
   var transprentHTML = document.createElement('div');
   //创建消息提示框
   var pullOperationHTML = document.createElement('div');
   //获取浏览器的宽度
   function browserWidth()
   {
    //定义初始变量,浏览器的宽度
    var winWidth = 0;
    if (window.innerWidth){
     winWidth = windows.innerWidth;
    }else if ((document.body) && (document.body.clientWidth)){
     winWidth = document.body.clientWidth;
    }
    //通过深入Document内部对body进行检测,获取窗口大小
    if (document.documentElement && document.documentElement.clientWidth)
    {
     winWidth = document.documentElement.clientWidth;
    }
    return winWidth;
   }
    
   //获取浏览器的高
   function browserHeight()
   {
    //定义初始变量,浏览器的高度
    var winHeight = 0;
    if (window.innerHeight){
     winHeight = windows.innerHeight;
    }else if ((document.body) && (document.body.clientHeight)){
     winHeight = document.body.clientHeight;
    }
    //通过深入Document内部对body进行检测,获取窗口大小
    if (document.documentElement && document.documentElement.clientHeight)
    {
    winHeight = document.documentElement.clientHeight;
    }
    return winHeight;
   }
   
   //创建一个透明遮罩层
   function transprentDiv()
   {
    transprentHTML.style.background="hotpink";//设置创建透明遮罩层Div的背景颜色
    transprentHTML.style.width=browserWidth()+"px";//设置创建透明遮罩层Div的宽度
    transprentHTML.style.height=browserHeight()+"px";//设置创建透明遮罩层Div的高度
    transprentHTML.style.position="absolute";//设置创建透明遮罩层Div的绝对位置
    transprentHTML.style.top="0px";//设置创建透明遮罩层Div据浏览器上边的边距
    transprentHTML.style.left="0px";//设置创建透明遮罩层Div据浏览器左边的边距
    transprentHTML.style.filter="Alpha(Opacity='40',FinishOpacity='90',Style='3')";//设置创建透明遮罩层Div的透明度
    transprentHTML.style.zIndex="100";//设置创建透明遮罩层Div的层次
    transprentHTML.style.display="none";//设置创建透明遮罩层初始化不显示
   }
   //创建透明层上的提示框
   function pullOperationDiv()
   {
    //pullOperationHTML.style.background="skyblue";//设置创建提示框Div的背景颜色
    pullOperationHTML.style.border="10px solid skyblue";//设置创建提示框Div的层次
    pullOperationHTML.style.width="400px";//设置创建提示框Div的宽度
    pullOperationHTML.style.height="300px";//设置创建提示框Div的高度
    pullOperationHTML.style.position="absolute";//设置创建提示框Div的绝对位置
    //设置创建提示框Div据浏览器上边的边距,(首先减去弹出层的高度,然后用剩余的高度除以2,得到提示框据浏览器上边距的距离)
    pullOperationHTML.style.top=(browserHeight()-300)/2+"px";
    //设置创建提示框Div据浏览器上边的边距,(首先减去弹出层的宽度度,然后用剩余的宽度度除以2,得到提示框据浏览器左边距的距离)
    pullOperationHTML.style.left=(browserWidth()-400)/2+"px";
    pullOperationHTML.style.zIndex="101";//设置创建提示框Div的层次
    pullOperationHTML.style.display="none";//设置创建提示框初始化不显示
    //调用提示消息内容
    pullHeadMsg();
    //调用鼠标拖放事件
    pullOperationDivMove(pullOperationHTML);
   }
   //给提示框添加内容
   function pullHeadMsg()
   {
    pullOperationHTML.innerHTML="<div id='headDiv' style='width:100%;height:8%;background-color:gray;'>"+
            "<div style='width:90%;height:100%;float:left;font-size:25px;font-weight:bold;color:#0000dd;cursor:move;'><em>温馨提示</em></div>"+
            "<div style='width:10%;height:100%;'><input type='image' src='' onclick='pullHeadMsgButton(0);'></div>"+
           "</div>"+
           "<div id='bodyDiv' style='width:100%;height:82%;background-color:lime;'></div>"+
           "<div id='footDiv' style='width:100%;height:10%;background-color:skyblue;text-align:right;'>"+
            "<label><input type='button' id='okButton' value='确定' onclick='pullHeadMsgButton(1);'/></label>&nbsp;&nbsp;"+
            "<label><input type='button' id='cansleButton' value='取消' onclick='pullHeadMsgButton(0);'/></label>"+
           "</div>";
   }
   function pullOperationDivMove(moveId){
   //鼠标拖动div的事件,e和event是事件对象
    moveId.onmousedown=function(e){
     
     e = e || window.event;
     var x= e.layerX || e.offsetX; //兼容IE和火狐
     var y= e.layerY || e.offsetY; //兼容IE和火狐
     //设置捕获范围
     //该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入
     //setCapture 的意思就是设置一个对象的方法被触发的范围,或者作用域
     if(moveId.setCapture){
      moveId.setCapture();
     }else if(window.captureEvents){
      window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); //鼠标的一处或被点下
     }
     //鼠标移动事件
     document.onmousemove=function(e){
      e= e || window.event;
      if(!e.pageX)e.pageX=e.clientX;
      if(!e.pageY)e.pageY=e.clientY;
      var tx=e.pageX-x;
      var ty=e.pageY-y;
      moveId.style.left=tx;
      moveId.style.top=ty;
     };
     //onmouseup鼠标左键释放
     document.onmouseup=function(){
     //取消捕获范围
      if(moveId.releaseCapture){
       moveId.releaseCapture(); //重新设置该div被触发的范围
      }else if(window.captureEvents){
       window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
      }
      //鼠标左键释放之后,清除事件
      document.onmousemove=null;
      document.onmouseup=null;
     };
    };
   }
  
   
   //透明层,和弹出框的显示
   function transprentDivDisplay()
   {
    if(transprentHTML.style.display=='none')
    {
     transprentHTML.style.display='block';
     pullOperationHTML.style.display='block';
    }
    
   }
   //点击提示框,确定和取消按钮触发事件
   function pullHeadMsgButton(bool)
   {
    //判断透明遮罩层,消息提示框,是否处在显示状态,如果是,则关闭
    if(transprentHTML.style.display=='block'){
     transprentHTML.style.display='none';
     pullOperationHTML.style.display='none';
     //判断用户点击提示框上面的那个按钮,1代表确定,0代表取消
     if(bool==1){
      return true;
     }else{
      return false;
     }
    }
   }
   
   //显示透明遮罩层
   function showTransprentDiv()
   { 
    //调用创建的透明层
    transprentDiv();
    //调用透明层上的提示框
    pullOperationDiv();
    var bodyObject = document.body;//获取body对象
    
    bodyObject.insertBefore(transprentHTML,bodyObject.lastChild);
    //动态的将创建的提示框插入到body中,
    bodyObject.insertBefore(pullOperationHTML,bodyObject.lastChild);
    //透明层,和弹出框的显示和隐藏
    transprentDivDisplay();
    
   }
  </script>
 </head>
 <body>
  
  <div style="width:500px;height:500px;margin-left:400px;">
   <h1>第一步:页面加载时,js创建透明遮罩层"transprentHTML"和消息提示框"pullOperationHTML"</h1>
   <h1>第二步:调用showTransprentDiv()此方法,给第一步创建的两个div分别添加样式并控制层次,这时,透明遮罩层的宽高是获取浏览器的宽高</h1>
   <h1>第三步:消息提示框可以任意拖动,具体步骤代码中有详细注释</h1>
   <input type="button" value="弹出遮罩层" onclick="showTransprentDiv()"/>
  </div>
 </body>
</html>

分享到:
评论

相关推荐

    JS弹出层遮罩,隐藏背景页面滚动条细节优化分析

    样式中需要对IE6、7及其它浏览器用hack辨别,这是因为当页面拉到下面时如果html或body被overflow:hidden,透明弹层下面的页面就会被部分正常隐藏,通过透明看到的一片的灰度,具体颜色跟平台及用户设置背景色有关。...

    JavaScript简单实现弹出拖拽窗口(一)

    本文实例为大家分享JavaScript弹出拖拽窗口的具体实现代码,供大家参考,具体内容如下 需求说明:  1、点击页面按钮,弹出窗口;  2、要有半透明背景遮罩;  3、弹出窗口圆角,窗口半透明,但内容不透明;带阴影...

    JavaScript简单实现弹出拖拽窗口(二)

    用于设置弹出悬浮窗口时的半透明背景,  按钮:用于点击弹出悬浮窗口。  下面进行详细解释  1、要让窗口能自由移动,那么窗口的定位(position)应该采用绝对定位(absolute);  /*登录浮层组件*/ .popup{ ...

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

    这两天要用到正好练练手,比想象中碰到的问题要多,比如: ie6背景透明 ie6居中显示 还有对js对象的理解 openID=显示按钮,conID=需要显示的div,closeID=关闭按钮 解决了: 1.可以遮挡ie6下的select元素 但是在ie6下div...

    JTooltips javascript 提示框

    在做B/S开发的时候,通常会遇到很多的客户与服务器的交流,而浏览器自带的弹出工具条是不能修改样式的,用JS模拟一个华丽的工具条逐渐成为这一形式的主流,而这些工具条平时的开发当中重复量很大。JTooltips插件致力...

    JAVA上百实例源码以及开源项目源代码

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    JAVA上百实例源码以及开源项目

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包2

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包3

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包4

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...

Global site tag (gtag.js) - Google Analytics