核心思路:设置一个隐藏的(display:none;)、背景偏暗的div及其子div作为对话框,当点击某处时,将此div设置为显示。
核心代码如下(部分js代码用于动态调整div内容的行高,这部分代码可以忽略):
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="demo.css">
<script src="jquery-1.10.1.min.js"></script>
<script>
function getHeight(className) {
var height = $(className).height();
return height;
}
function setLineHeight(className) {
var height = getHeight(className) + "px";
$(className).css("line-height",height);
}
$(function() {
//调整行高并设置回调函数,窗口一动我也动
setLineHeight(".init-page-btn");
setLineHeight(".hidden-alert");
window.onresize = function(){
setLineHeight(".init-page-btn");
setLineHeight(".hidden-alert");
};
//点击"点我"按钮就弹出窗口让我填写手机号码
$(".init-page-btn").click(function(){
$(".hidden-bg").show();
setLineHeight(".hidden-alert");
});
//点击弹出窗口中的"叉",弹出窗口就消失
$(".hidden-alert-close").click(function(){
$(".hidden-bg").hide();
});
});
</script>
</head>
<body>
<div class="init-page">
<div class="init-page-btn">点我</div>
</div>
<div class="hidden-bg">
<div class="hidden-alert">
<span>请输入手机号:<input type="text"></span>
<div class="hidden-alert-close">叉</div>
</div>
</div>
</body>
</html>
初始页面效果:
弹出对话框后的效果为:
查看效果和完整代码可以下载以下文件: