页面中的弹出框思路设计,其实是要做隐藏。就一个开关、配合样式做操作。
一、 HTML页面中的弹出框设计本案例主要是应用了,document、display的隐藏、删除样式功能。其中,样式层叠的效果。
举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display: none;
}
.c1 {
position: fixed;
left: 0;
right: 0;
top:0;
bottom: 0;
background-color: white;
z-index: 9;
opacity: 0.6;
}
.c2 {
width: 200px;
height: 150px;
background-color: white;
position: fixed;
left: 50%;
right: 50%;
top: 50%;
margin-left: -250px;
margin-top: -200px;
z-index: 10;
border: 1px solid black;
}
</style>
</head>
<body style="margin: 0">
<div>
<input type="button" value="添加" onclick="ShowModel()">
<table border="1">
<thead>
<tr>
<th>姓名</th>
<th>职业</th>
</tr>
</thead>
<tbody>
<tr>
<td>chen1203</td>
<td>IT</td>
</tr>
</tbody>
</table>
</div>
<!-- 遮罩层开始-->
<div id="i1" class="c1 hide"></div>
<!-- 遮罩层开始-->
<!-- 弹出框开始-->
<div id='i2' class="c2 hide">
<p><input type="text" /></p>
<p><input type="text" /></p>
<p>
<input type="button" value="取消" onclick="HideModel()" />
<input type="submit" value="确定" />
</p>
</div>
<!-- 弹出框结束-->
<script>
function ShowModel() {
document.getElementById('i1').classList.remove('hide');
document.getElementById('i2').classList.remove('hide');
}
function HideModel() {
document.getElementById('i1').classList.add('hide');
document.getElementById('i2').classList.add('hide');
}
</script>
</body>
</html>
效果:(点击:添加,弹出对话框;点击 取消,弹出框关闭,后续可以优化点击 确定 提交信息到后台)
本案例,使用HTML框架、 CSS、JS的结合 ,采用复选框的模式判断做选择。
例子如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display: none;
}
.c1 {
position: fixed;
left: 0;
right: 0;
top:0;
bottom: 0;
background-color: white;
z-index: 9;
opacity: 0.6;
}
.c2 {
width: 200px;
height: 150px;
background-color: white;
position: fixed;
left: 50%;
right: 50%;
top: 50%;
margin-left: -250px;
margin-top: -200px;
z-index: 10;
border: 1px solid black;
}
</style>
</head>
<body style="margin: 0">
<div>
<input type="button" value="添加" onclick="ShowModel();" />
<input type="button" value="全选" onclick="ChooseAll();" />
<input type="button" value="反选" onclick="CancleAll();" />
<input type="button" value="取消" onclick="ReverAll();" />
<table id="tb_1">
<tbody>
<tr >
<td><input type="checkbox"/></td>
<td>chen1</td>
<td>IT1</td>
</tr>
<tr >
<td><input type="checkbox"/></td>
<td>chen2</td>
<td>IT2</td>
</tr>
<tr >
<td><input type="checkbox"/></td>
<td>chen3</td>
<td>IT3</td>
</tr>
<tr >
<td><input type="checkbox"/></td>
<td>chen4</td>
<td>IT4</td>
</tr>
</tbody>
</table>
</div>
<!-- 遮罩层开始-->
<div id="i1" class="c1 hide"></div>
<!-- 遮罩层开始-->
<!-- 弹出框开始-->
<div id='i2' class="c2 hide">
<p><input type="text" /></p>
<p><input type="text" /></p>
<p>
<input type="button" value="取消" onclick="HideModel()" />
<input type="submit" value="确定" />
</p>
</div>
<!-- 弹出框结束-->
<script>
function ShowModel() {
document.getElementById('i1').classList.remove('hide');
document.getElementById('i2').classList.remove('hide');
}
function HideModel() {
document.getElementById('i1').classList.add('hide');
document.getElementById('i2').classList.add('hide');
}
function ChooseAll() {
var tbody = document.getElementById('tb_1');
var tr_list = tbody.children[0].children;
//循环所有的tr,currcnt_tr,注意html的层级关系 document.getElementById('tb_1').children[0].children[0].children[0]
for (var i=0;i<tr_list.length;i++) {
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
checkbox.checked = true;
}
}
function CancleAll() {
var tbody = document.getElementById('tb_1');
var tr_list = tbody.children[0].children;
//循环所有的tr,currcnt_tr,注意html的层级关系 document.getElementById('tb_1').children[0].children[0].children[0]
for (var i=0;i<tr_list.length;i++) {
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
if (checkbox.checked) {
checkbox.checked = false;
} else {
checkbox.checked = true;
}
}
}
function ReverAll() {
var tbody = document.getElementById('tb_1');
var tr_list = tbody.children[0].children;
//循环所有的tr,currcnt_tr,注意html的层级关系 document.getElementById('tb_1').children[0].children[0].children[0]
for (var i = 0; i < tr_list.length; i++) {
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
checkbox.checked = false
}
}
</script>
</body>
</html>
效果:(无论是点击,添加、全选、反选、取消,都会有相对应的操作)
本次案例的应用只知识点,document 中的间接查找功能。
示例如下:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display: none;
}
.item .header {
height: 35px;
width: 300px;
background-color: cornflowerblue;
color: white;
line-height: 35px;
}
</style>
</head>
<body>
<div style="width: 300px;">
<div class="item">
<div id="i1" class="header" onclick="ChangeMenu('i1')">菜单1</div>
<div class="contnet hide">
<div>内容信息1</div>
<div>内容信息1</div>
<div>内容信息1</div>
<div>内容信息1</div>
</div>
</div>
<div class="item">
<div id="i2" class="header" onclick="ChangeMenu('i2')">菜单2</div>
<div class="contnet hide ">
<div>内容信息2</div>
<div>内容信息2</div>
<div>内容信息2</div>
<div>内容信息2</div>
</div>
</div>
<div class="item">
<div id="i3" class="header" onclick="ChangeMenu('i3')">菜单3</div>
<div class="contnet hide ">
<div>内容信息3</div>
<div>内容信息3</div>
<div>内容信息3</div>
<div>内容信息3</div>
</div>
</div>
<div class="item">
<div id="i4" class="header" onclick="ChangeMenu('i4')">菜单4</div>
<div class="contnet hide ">
<div>内容信息4</div>
<div>内容信息4</div>
<div>内容信息4</div>
<div>内容信息4</div>
</div>
</div>
</div>
<script>
function ChangeMenu(nid){
var currnet_header = document.getElementById(nid);
var item_list = currnet_header.parentElement.parentElement.children;
for (var i=0;i<item_list.length;i++){
var current_item = item_list[i];
current_item.children[1].classList.add('hide');
}
currnet_header.nextElementSibling.classList.remove('hide')
// console.log(currnet_header)
}
</script>
</body>
</html>
效果:(点击菜单的时候,会弹出对话框下的内容)
~~ 以上~~