WEB中的模态对话框

步骤:
1.首先.做好自定义的窗口/对话框层.并将其隐藏style.display=none
2.制作笼罩层.插入div,设置其宽/高大于最底层宽/高,完全笼罩在最底层上面,设置其透明度alpha(opacity=0),并将其隐藏style.display=none.
3.调用对话框时同时将两个层同时显示出来
4.关闭对话框时同时将两个层隐藏

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<div class="cecmbody" id="cecmpolicy">
         <div class="leftClass">
                <p>测试</p>
          <input type="button" value="点击这里" onclick="sAlert('<a href=http://www.baidu.com>测试效果</a>');" />

         </div>
         <div class="rightClass">
         </div>
</div>
           <script type="text/javascript" language="javascript">

          function sAlert(str){
          var msgw,msgh,bordercolor;
          msgw=400;//提示窗口的宽度
          msgh=100;//提示窗口的高度
          titleheight=25 //提示窗口标题高度
          bordercolor="#336699";//提示窗口的边框颜色
          titlecolor="#99CCFF";//提示窗口的标题颜色
  
          var sWidth,sHeight;
          sWidth=document.body.offsetWidth;
          sHeight=screen.height;
          var bgObj=document.createElement("div");
          bgObj.setAttribute('id','bgDiv');
          bgObj.style.position="absolute";
          bgObj.style.top="0";
          bgObj.style.background="#777";
          bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
          bgObj.style.opacity="0.6";
          bgObj.style.left="0";
          bgObj.style.width=sWidth + "px";
          bgObj.style.height=sHeight + "px";
          bgObj.style.zIndex = "10000";
          document.body.appendChild(bgObj);
  
          var msgObj=document.createElement("div")
          msgObj.setAttribute("id","msgDiv");
          msgObj.setAttribute("align","center");
          msgObj.style.background="white";
          msgObj.style.border="1px solid " + bordercolor;
              msgObj.style.position = "absolute";
          msgObj.style.left = "50%";
                     msgObj.style.top = "50%";
                     msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
                     msgObj.style.marginLeft = "-225px" ;
                     msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px";
                     msgObj.style.width = msgw + "px";
                     msgObj.style.height =msgh + "px";
                     msgObj.style.textAlign = "center";
                     msgObj.style.lineHeight ="25px";
                     msgObj.style.zIndex = "10001";
  
            var title=document.createElement("h4");
            title.setAttribute("id","msgTitle");
            title.setAttribute("align","right");
            title.style.margin="0";
            title.style.padding="3px";
            title.style.background=bordercolor;
            title.style.filter="progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
            title.style.opacity="0.75";
            title.style.border="1px solid " + bordercolor;
            title.style.height="18px";
            title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif";
            title.style.color="white";
            title.style.cursor="pointer";
            title.innerHTML="关闭";
            title.onclick=function(){
                 document.body.removeChild(bgObj);
                       document.getElementById("msgDiv").removeChild(title);
                       document.body.removeChild(msgObj);
                       }
            document.body.appendChild(msgObj);
            document.getElementById("msgDiv").appendChild(title);
            var txt=document.createElement("p");
            txt.style.margin="1em 0"
            txt.setAttribute("id","msgTxt");
            txt.innerHTML=str;
                  document.getElementById("msgDiv").appendChild(txt);
                   }
         </script>

</body>
</html>

posted on 2010-10-08 09:50  基斯盐  阅读(277)  评论(0编辑  收藏  举报

导航