+ -
当前位置:首页 → 问答吧 → 求教:关于一个DIV弹出层的问题

求教:关于一个DIV弹出层的问题

时间:2009-01-05

来源:互联网

本帖最后由 booyo 于 2009-1-6 10:31 编辑

原代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title></title>
  6. <STYLE>
  7.    #login{
  8.      position:relative;
  9.      display: none;
  10.          top: 20px;
  11.          left:30px;
  12.          background-color:#ffffff;
  13.          text-align: center;
  14.          border: solid 1px;
  15.          padding: 10px;
  16.          z-index: 1;
  17.    }
  18.   
  19. </STYLE>

  20. <script  type="text/javascript">

  21. var W = screen.width;//取得屏幕分辨率宽度
  22. var H = screen.height;//取得屏幕分辨率高度
  23. function M(id){
  24.     return document.getElementById(id);//用M()方法代替document.getElementById(id)
  25. }
  26. function MC(t){
  27.    return document.createElement(t);//用MC()方法代替document.createElement(t)
  28. };
  29. //判断浏览器是否为IE
  30. function isIE(){
  31.       return (document.all && window.ActiveXObject && !window.opera) ? true : false;
  32. }
  33. //取得页面的高宽
  34. function getBodySize(){
  35.    var bodySize = [];
  36.    with(document.documentElement) {
  37.     bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;//如果滚动条的宽度大于页面的宽度,取得滚动条的宽度,否则取页面宽度
  38.     bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;//如果滚动条的高度大于页面的高度,取得滚动条的高度,否则取高度
  39.    }
  40.    return bodySize;
  41. }
  42. //创建遮盖层
  43. function popCoverDiv(){
  44.    if (M("cover_div")) {
  45.    //如果存在遮盖层,则让其显示
  46.     M("cover_div").style.display = 'block';
  47.    } else {
  48.    //否则创建遮盖层
  49.     var coverDiv = MC('div');
  50.     document.body.appendChild(coverDiv);
  51.     coverDiv.id = 'cover_div';
  52.     with(coverDiv.style) {
  53.      position = 'absolute';
  54.      background = '#333';
  55.      left = '0px';
  56.      top = '0px';
  57.      var bodySize = getBodySize();
  58.      width = bodySize[0] + 'px'
  59.      height = bodySize[1] + 'px';
  60.      zIndex = 0;
  61.      if (isIE()) {
  62.       filter = "Alpha(Opacity=60)";//IE逆境
  63.      } else {
  64.       opacity = 0.6;
  65.      }
  66.     }
  67.    }
  68. }


  69. //让登陆层显示为块
  70.     function showLogin()
  71.     {
  72.                 var login=M("login");
  73.             login.style.display = "block";
  74.         }
  75. //设置DIV层的样式
  76. function change(){
  77.           var login = M("login");
  78.       login.style.position = "absolute";
  79.       login.style.border = "1px solid #CCCCCC";
  80.       login.style.background ="#fff";
  81.       var i=0;
  82.           var bodySize = getBodySize();
  83.       login.style.left = (bodySize[0]-i*i*4)/2+"px";
  84.       login.style.top = (bodySize[1]/2-100-i*i)+"px";
  85.       login.style.width =      i*i*4 + "px";
  86.       login.style.height = i*i*1.5 + "px";
  87.      
  88.       popChange(i);
  89. }
  90. //让DIV层大小循环增大
  91. function popChange(i){
  92.       var login = M("login");
  93.           var bodySize = getBodySize();
  94.       login.style.left = (bodySize[0]-i*i*4)/2+"px";
  95.       login.style.top = (bodySize[1]/2-100-i*i)+"px";
  96.       login.style.width =      i*i*4 + "px";
  97.       login.style.height = i*i*1.5+ "px";
  98.       if(i<=10){
  99.            i++;
  100.            setTimeout("popChange("+i+")",10);//设置超时10毫秒
  101.       }
  102. }
  103. //打开DIV层
  104. function open()
  105. {
  106.         change();
  107.         showLogin();
  108.         popCoverDiv()
  109.         void(0);//不进行任何操作,如:<a href="#">aaa</a>
  110. }
  111. //关闭DIV层
  112. function close(){
  113.          M('login').style.display = 'none';
  114.          M("cover_div").style.display = 'none';
  115.         void(0);
  116. }
  117. </script>
  118. </head>
  119. <body>
  120. <a href="javascriptpen();">登陆1</a>
  121. <div id="login">
  122.   <span>用户登陆</span>
  123.   <div>
  124.    <a href="javascript:close();">关闭</a>  </div>
  125. </div>
  126. </body>
  127. </html>  
复制代码

请各位高手赐教:现在我想增加一个“登录2”,然后点击同样会弹出DIV层,但是层里面的内容是跟“登录1”所弹出的内容是不一样的,这段代码该怎么修改修改呢?谢谢了!!!

作者: booyo   发布时间: 2009-01-05

将函数中实际的东西写成变量,定义到函数的()中来,这样你就可以传参数进去了。。。

作者: lovevfp   发布时间: 2009-01-05

<!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" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Designer mail" content="itchina110(at)126.com" />
<meta name="author" content="花随风落" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<title>测试弹出</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<style>
#login{display:none;position:relative;z-index:9999;width:300px;height:400px;background:#000;color:#fff;}
</style>
</head>

<body>
<a href="javascript:void(0)" onclick ="popaa('login');">弹出</a>
<div id="login">
   <p>aaaa</p>
   <a href="javascript:void(0)" onclick ="close_box('login');">关闭</a>
</div>
<script language="javascript">
<!--
var body_width = document.body.clientWidth;
var body_height = document.body.clientHeight;
function popaa(pop_box){
var pop_aa = document.getElementById(pop_box);
pop_aa.style.display = "block";
var pop_width = pop_aa.offsetWidth;
var pop_height = pop_aa.offsetHeight;
if (body_height>pop_height){
  pop_aa.style.top = (body_height/2 - pop_height/2) + "px";
}
pop_aa.style.left = (body_width/2 - pop_width/2) + "px";
alert(body_width);
alert(body_height);
}
function close_box(pop_box){
   var pop_aa = document.getElementById(pop_box);
    pop_aa.style.display = "none" ;
}
//-->
</script>
</body>

</html>

作者: lovevfp   发布时间: 2009-01-05

这样就可以重复使用了。。。我是菜鸟哈,不知道回答得对不对。

作者: lovevfp   发布时间: 2009-01-05

将函数中实际的东西写成变量,定义到函数的()中来,这样你就可以传参数进去了。。。
lovevfp 发表于 2009-1-6 12:36


可不可以在我原来的代码中给修改修改呢?写成变量不怎么会呀,谢谢帮忙了!!!

作者: booyo   发布时间: 2009-01-05

//设置DIV层的样式

function change(){

          var login = M("login");

      login.style.position = "absolute";

      login.style.border = "1px solid #CCCCCC";

      login.style.background ="#fff";

      var i=0;

          var bodySize = getBodySize();

      login.style.left = (bodySize[0]-i*i*4)/2+"px";

      login.style.top = (bodySize[1]/2-100-i*i)+"px";

      login.style.width =      i*i*4 + "px";

      login.style.height = i*i*1.5 + "px";

     

      popChange(i);

}

我只能给你举个例子。

比如这里的

function change(login){

          var login = M(login);

      login.style.position = "absolute";

      login.style.border = "1px solid #CCCCCC";

      login.style.background ="#fff";

      var i=0;

          var bodySize = getBodySize();

      login.style.left = (bodySize[0]-i*i*4)/2+"px";

      login.style.top = (bodySize[1]/2-100-i*i)+"px";

      login.style.width =      i*i*4 + "px";

      login.style.height = i*i*1.5 + "px";

     

      popChange(i);

}

在以后调用这个函数的时候。。。使用change("login")

作者: lovevfp   发布时间: 2009-01-05