JavaScript实现模态窗口与背景灰显效果

作者:函数茶馆时间:2026-10-23 09:28:48浏览:211

本文介绍如何使用JavaScript实现简单的模态窗口功能。通过创建一个覆盖全屏的iframe来遮挡页面,并在其上方放置一个div层,结合面向对象编程动态生成样式,实现背景灰显和弹窗显示效果。

JavaScript模态窗口实现原理

该方案主要基于JavaScript实现,核心思路是利用一个iframe覆盖整个页面以实现背景灰显效果,并在iframe之上叠加一个div层作为模态窗口主体。代码采用面向对象方式编写,其中部分样式通过JavaScript动态生成。


ModeWindow.js


具体实现代码如下:

完整HTML与JavaScript代码示例<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script src="ModeWindow.js"></script>
<script language="javascript" type="text/javascript">
var myWin;
function show1(){
var divtest = document.getElementById("divtest");
divtest.style.display="block";
myWin = new ModeWindow(divtest,200,300,300,100,"i change!");
myWin.show();
} 
function show2(){
var tbtest = document.getElementById("tbtest");
tbtest.style.display="block";
//myWin = new ModeWindow(tbtest);
myWin = new ModeWindow(tbtest,200,200,200,222,"hello world!");
myWin.show();
} 
function Winclose()
{ 
myWin.close();
} 
</script>
</head>
<body>
<form id="form1" runat="server">
<table id="tbtest" style="display: none">
<tr>
<td style="width: 100px">
<input id="Text6" type="text" /></td>
<td style="width: 100px">
<input type="button" onclick="Winclose()" value="close" /></td>
</tr>
</table>
<div id="divtest" style="display: none">
<br />
<br />
我来了!<input type="button" onclick="Winclose()" value="close" />
</div>
<div align="center">
<table width="800" height="500">
<tr>
<td style="width: 100px">
<input id="Text2" type="text" /></td>
<td style="width: 100px">
<input id="Text1" type="text" /></td>
<td style="width: 100px">
<input id="Text3" type="text" /></td>
<td style="width: 100px">
<input id="Text4" type="text" /></td>
<td style="width: 100px">
<input id="Text5" type="text" /></td>
</tr>
<tr>
<td style="width: 100px">
<input type="button" onclick="show2()" value="open table" /></td>
<td style="width: 100px">
<input type="button" onclick="show2()" value="open table" /></td>
<td style="width: 100px">
<input type="button" onclick="show2()" value="open table" /></td>
<td style="width: 100px">
<input type="button" onclick="show1()" value="open div" /></td>
<td style="width: 100px">
<input type="button" onclick="show1()" value="open div" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>

在线演示 http://img.jb51.net/online/ModeWindow/index.htm

作者最新文章