排它思想
选中一个排除其他的
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <style>
7 .active{
8 background-color: blue;
9 }
10 #aaa{
11 width: 50px;
12 height: 70px;
13 background-color: red;
14 position: absolute;
15 top: 30px;
16 display: none;
17
18 }
19
20 #box{
21 width: 50px;
22 height: 30px;
23 background-color: blue;
24 position: relative;
25 }
26 </style>
27 </head>
28 <body>
29 <button>按钮1</button>
30 <button>按钮2</button>
31 <button>按钮3</button>
32 <button>按钮4</button>
33 <button>按钮5</button>
34
35 <div id="box">
36 哈哈哈<div id="aaa"></div>
37 </div>
38
39
40 <script>
41 var oBtns = document.getElementsByTagName("button");
42 for (var i = 0; i < oBtns.length; i++) {
43 oBtns[i].onclick = function () {
44 for (var j = 0; j < oBtns.length; j++) {
45 oBtns[j].className = '';
46 }
47 this.className = 'active';
48 }
49 }
50
51 document.getElementById('box').onmouseenter = function () {
52 this.children[0].style.display = 'block';
53 };
54
55 document.getElementById('box').onmouseleave = function () {
56 this.children[0].style.display = 'none';
57 };
58
59 </script>
60 </body>
61 </html>
tab选项卡
选中当前对应的标签显示该标签下方对应显示的内容
实现思想:
选中当前的标签时候,记录当前标签的下标,对应下方的标签就可以根据下标值获取内容
这里边遇到一个变量提升的坑
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
ul{
list-style: none;
}
#tab{
width: 480px;
margin: 20px auto;
border: 1px solid red;
}
ul{
width: 100%;
overflow: hidden;
}
ul li{
float: left;
width: 160px;
height: 60px;
line-height: 60px;
text-align: center;
background-color: #cccccc;
}
ul li a{
text-decoration: none;
color:black;
}
li.active{
background-color: red;
}
p{
display: none;
height: 200px;
text-align: center;
line-height: 200px;
background-color: red;
}
p.active{
display: block;
}
</style>
</head>
<body>
<div id="tab">
<ul>
<li class="active">
<a href="#">首页</a>
</li>
<li>
<a href="#">新闻</a>
</li>
<li>
<a href="#">图片</a>
</li>
</ul>
<p class="active">首页内容</p>
<p>新闻内容</p>
<p>图片内容</p>
</div>
<script type="text/javascript">
//es5
/*
var oLis = document.getElementsByTagName("li");
var oPs = document.getElementsByTagName("p");
var i; // 变量提升
for (i=0; i<oLis.length; i++){
oLis[i].index = i;
oLis[i].onclick = function () {
for (var j=0; j<oLis.length; j++) {
oLis[j].className = '';
oPs[j].className = '';
}
this.className = 'active';
oPs[this.index].className = 'active';
}
}
*/
// es6
let oLis = document.getElementsByTagName("li");
let oPs = document.getElementsByTagName("p");
for (let i=0; i<oLis.length; i++){
oLis[i].index = i;
oLis[i].onclick = function () {
for (let j=0; j<oLis.length; j++) {
oLis[j].className = '';
oPs[j].className = '';
}
this.className = 'active';
oPs[this.index].className = 'active';
}
}
</script>
</body>
</html>