模拟模态对话框的DIV
最近项目中用到一个模拟模态对话框的DIV的实现,有两个层,下面的层是半透明的,将遮盖整个窗口,上面的层则用于用户输入信息,这里是一个简单的模仿。
以下是页面代码:
<html>
<head>
<title>Demo</title>
</head>
<body>
<table>
<tr>
<td colspan="3"><input type="button" value="新增" name="" onclick="selectClass();"/></td>
</tr>
</table>
<div id="div1" style="display:none; background-color:#000; filter:alpha(opacity=30);opacity:0.3; width:1024px; height:768px; z-index:10; position: absolute;left:0px; top:0px;">
</div>
<div id="div2" style="display:none; background-color:#FFF; width:300px; height:180px; z-index:20; position: absolute; left:300px; top:150px;">
<table>
<tr>
<td>交易类型</td>
<td>
<select name="sel1" value="">
<option value="">--选择交易类型--</option>
<option>存款</option>
<option>查询</option>
<option>汇款</option>
<option>取款</option>
</select>
</td>
</tr>
<tr>
<td>分类/对象</td>
<td>
<select name="sel2" value="" onchange="showSel3(this.value);">
<option value"">--选择分类--</option>
<option value="0">对手</option>
<option value="1">对象</option>
</select>
</td>
</tr>
<tr>
<td id="td1"> </td>
<td id="td2"> </td>
</tr>
<tr>
<td colspan="2"><input type="button" value="确定" name="confirm" onclick="confirm(true);"> <input type="button" value="取消" name="cancel" onclick="confirm(false);"></td>
</tr>
</table>
</div>
</body>
</html>
以下是javaScript代码:
<script> //显示层 function selectClass(){ document.getElementById("div1").style.display="block"; document.getElementById("div2").style.display="block"; } //显示对手名称/对象分类 function showSel3(val){ var strArr =strList(); var td1HTML=document.getElementById("td1"); var td2HTML=document.getElementById("td2"); var td1Value=""; var td2Value=""; if(val!=""){ if(val=="0"){ td1Value="对手名称:" td2Value="<input name='' type='text' value=''/>" td1HTML.innerHTML=td1Value; td2HTML.innerHTML=td2Value; }else{ td1Value="对手分类:" td2Value="<select name=''><option value=''>--请先把对手分类--</option>"; for(var str in strArr){ td2Value+="<option value='"+str+"'>"+strArr[str]+"</option>"; } td2Value+="</select>"; td1HTML.innerHTML=td1Value; td2HTML.innerHTML=td2Value; } }else{ td1HTML.innerHTML=""; td2HTML.innerHTML=""; } } //确定或消信息的输入 function confirm(flag){ if(flag){ document.getElementById("div1").style.display="none"; document.getElementById("div2").style.display="none"; //传递数据 }else{ document.getElementById("div1").style.display="none"; document.getElementById("div2").style.display="none"; //清空数据 document.getElementById("sel1").value=""; document.getElementById("sel2").value=""; document.getElementById("td1").innerHTML=""; document.getElementById("td2").innerHTML=""; } } </script>
运行效果如下: