div在最顶层显示----弹出框效果

div显示在最顶层,并且背景层变暗.

效果图如下:

代码:
html文件内容如下:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <script type="text/javascript" src="coverDiv.js"></script>

  </head>  <body onload="drag();">

  <div>

   <input type="button" onclick="popSignFlow();" value="login"/>  

</div>

</body>

</html>

  

coverDiv.js文件内容如下:

 

function isIE(){
      return (document.all && window.ActiveXObject && !window.opera) ? true : false;
  }
  var loginDivWidth = 300;
  var sign_in_flow = '<div style="background:#FF9900;">Login</div><div>e-mail:*</div><div>'
       + '<input type="text" id="sign_email" maxlength="64" size="30"/>'
       + '</div><div>password:*</div><div><input type="password" size="30"/>'
        + '</div><div><input type="button" value="login" />  '
        + '  <input type="button" value="cancel" onclick="cancelSign();"/></div>';
  function cancelSign(){
    document.getElementById("sign_div").style.display = 'none';
    document.getElementById("cover_div").style.display = 'none';
   document.body.style.overflow = '';
  };
  function popCoverDiv(){
    var coverDiv = document.createElement('div');
    document.body.appendChild(coverDiv);
    with(coverDiv.style) {
    display = 'none';
     position = 'absolute';
     background = '#CCCCCC';
     left = '0px';
     top = '0px';
     var bodySize = getBodySize();
     width = bodySize[0] + 'px'
     height = bodySize[1] + 'px';
     zIndex = 98;
     if (isIE()) {
      filter = "Alpha(Opacity=60)";
     } else {
      opacity = 0.6;
     }
   }
   coverDiv.id = 'cover_div';
  }
  function getBodySize(){
   var bodySize = [];
   with(document.documentElement) {
    bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;
    bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;
   }
   return bodySize;
  }
  function popSign(){
    var signDiv = document.createElement('div');
    document.body.appendChild(signDiv);
    with (signDiv.style) {
     display = 'none';
     cursor='move';
     position = 'absolute';
     left = (document.documentElement.clientWidth - loginDivWidth)/2 + 'px';
     top = (document.documentElement.clientHeight - 300)/2 + 'px';
     width = loginDivWidth + 'px';
     zIndex = 99;
     background = '#FFFFFF';
     border = '#66CCFF solid 1px';
   }
    signDiv.id = 'sign_div';
    signDiv.align = "center";
    document.getElementById("sign_div").innerHTML = sign_in_flow;
  }
  function popSignFlow() {
   document.getElementById("cover_div").style.display = 'block'; 
  document.getElementById("sign_div").style.display = 'block'; 
  document.body.style.overflow = "hidden";
  }
  
  //以下是拖拽
  var offsetX = 0;
  var offsetY = 0;
  var currentLeft = 0;
  var currentTop = 0;
  var isDrag = false;
 
function stopEvent(evt){
      var event = window.event?window.event:evt;
      if (event.preventDefault) {
        event.preventDefault();
        event.stopPropagation();
      } else {
        event.returnValue = false;
      }
  }
  function drag(){
   popCoverDiv();
   popSign()
   document.getElementById('sign_div').onmousedown = function(evt){
    var evt = window.event?window.event:evt;
    if ((evt.which && evt.which == 1 ) || (evt.button && evt.button == 1)){
      isDrag = true;
      offsetX = evt.clientX;
      offsetY = evt.clientY;
      currentLeft = parseInt(document.getElementById('sign_div').style.left);
      currentTop = parseInt(document.getElementById('sign_div').style.top);
    }
    stopEvent(evt);
   } 
  document.onmousemove = function(evt){
    if(isDrag){
     var evt = window.event?window.event:evt;
      document.getElementById('sign_div').style.left = evt.clientX - offsetX + currentLeft +'px';
      document.getElementById('sign_div').style.top = evt.clientY - offsetY + currentTop +'px';
   stopEvent(evt);
    }
   } 
  document.onmouseup = function(evt){
    isDrag = false;
    var evt = window.event?window.event:evt;
    currentLeft = parseInt(document.getElementById('sign_div').style.left);
    currentTop = parseInt(document.getElementById('sign_div').style.top);
    stopEvent(evt);
   }
  }

  

posted @ 2012-03-29 16:50  任满  阅读(2654)  评论(0编辑  收藏  举报