Hul*_*ulk 14 html modal-dialog popup
所有,
如何为以下代码制作一个简单的模态弹出窗口.在点击背景时,模态弹出窗口不应该消失.
<html>
<input type="textarea"></input>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢.........
bob*_*nce 16
这是一个简单的JavaScript示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Basic modal demo</title>
<style type="text/css">
body { margin: 0; }
#shade, #modal { display: none; }
#shade { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 100%; }
#modal { position: fixed; z-index: 101; top: 33%; left: 25%; width: 50%; }
#shade { background: silver; opacity: 0.5; filter: alpha(opacity=50); }
</style>
</head>
<body>
<div id="shade"></div>
<div id="modal">
<textarea rows="5" cols="25"></textarea>
<button id="close">Close</button>
</div>
<p>
<button id="start">Start</button>
</p>
<script type="text/javascript">
var modal= document.getElementById('modal');
var shade= document.getElementById('shade');
document.getElementById('start').onclick= function() {
modal.style.display=shade.style.display= 'block';
};
document.getElementById('close').onclick= function() {
modal.style.display=shade.style.display= 'none';
};
// This code is a workaround for IE6's lack of support for the
// position: fixed style.
//
if (!('maxHeight' in document.body.style)) {
function modalsize() {
var top= document.documentElement.scrollTop;
var winsize= document.documentElement.offsetHeight;
var docsize= document.documentElement.scrollHeight;
shade.style.height= Math.max(winsize, docsize)+'px';
modal.style.top= top+Math.floor(winsize/3)+'px';
};
modal.style.position=shade.style.position= 'absolute';
window.onscroll=window.onresize= modalsize;
modalsize();
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以从那里进行各种改进,例如iframe修复IE z-indexing或将其封装在可重用对象中,但这是它完成的基本方式.
您还可以使用本机 HTML5.1 dailog。目前仅 Chrome 37+、Safari 6+ 和 Opera 24+ 支持对话框元素。
var dailog = document.getElementById("dialog");
function openModal() {
// dailog.show();
dailog.showModal();
}
function closeModal() {
dailog.close();
} Run Code Online (Sandbox Code Playgroud)
#dialog{width:300px;}
.right{float:right}Run Code Online (Sandbox Code Playgroud)
<button onclick="openModal()">Show dialog</button>
<dialog id="dialog">This is a dialog window<br/><br/><br/>
<button onclick="closeModal()" class="right">Close</button>
</dialog>Run Code Online (Sandbox Code Playgroud)