本文实例为大家分享了JavaScript实现多层颜色选项卡嵌套的具体代码,供大家参考,具体内容如下
这是学JavaScript时候的一个作业,如果没有思路还是挺有难度的,但是思路正确的话一步一步来就很简单做出来了。
实现效果
HTML部分代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
< div class = "box" id = "box" > < ul id = "leftBox" > < li class = "active" >a</ li > < li >b</ li > < li >c</ li > < li >d</ li > </ ul > < div id = "rightBox" > < div id = "rightBox1" class = "active" > < a href = "#" >a1</ a > < ul class = "tabUl" > < li class = "hover" >a1</ li > < li >a2</ li > < li >a3</ li > < li >a4</ li > </ ul > </ div > < div id = "rightBox2" > < a href = "#" >b1</ a > < ul class = "tabUl" > < li class = "hover" >b1</ li > < li >b2</ li > < li >b3</ li > < li >b4</ li > </ ul > </ div > < div id = "rightBox3" > < a href = "#" >c1</ a > < ul class = "tabUl" > < li class = "hover" >c1</ li > < li >c2</ li > < li >c3</ li > < li >c4</ li > < li >c5</ li > < li >c6</ li > </ ul > </ div > < div id = "rightBox4" > < a href = "#" >d1</ a > < ul class = "tabUl" > < li class = "hover" >d1</ li > < li >d2</ li > < li >d3</ li > < li >d4</ li > </ ul > </ div > </ div > </ div > |
css部分代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<style> * { margin : 0px ; padding : 0px ; list-style : none ; text-decoration : none ; } .box { width : 800px ; border : 1px solid #000000 ; margin : 20px auto ; background : blue ; } .box:after { content : "" ; display : block ; clear : both ; } #leftBox { float : left } #rightBox { float : left ; } #leftBox li { width : 200px ; height : 89px ; background : red ; margin-bottom : 2px ; color : #fff ; font : 50px / 89px "黑体" ; text-align : center ; } #rightBox div { display : none ; } #rightBox .active { display : block ; } #rightBox a { display : block ; width : 600px ; height : 325px ; background : #0F0 ; font-size : 100px ; color : #000 ; text-align : center ; text-decoration : none ; line-height : 360px ; } .tabUl { display : table; width : 100% ; } .tabUl li { display : table-cell ; background : #909 ; color : #fff ; font-size : 20px ; text-align : center ; height : 40px ; line-height : 40px ; border-right : 2px solid #03C ; cursor : pointer ; } .tabUl li.hover { background : #fff ; color : #000 ; } #leftBox .active { background : yellow; color : #000 ; } </style> |
JavaScript实现代码
思路:鼠标移入左边的每个li后,都会改变他的颜色,所以只需要改变class名,同时右边也会显示对于的div,有对应的话一般都会用到自定义索引值和this…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<script> /* 点击左边的li后,所点击li加上class名,其它清除所有,然后右边对应索引值的div也加上class=active,所以要用到this */ //获取元素 var lUl = document.getElementById( 'leftBox' ) var rUl = document.getElementById( 'rightBox' ) var lLi = lUl.getElementsByTagName( 'li' ) var oDiv = rUl.getElementsByTagName( 'div' ) //改变左边样式 for ( var i = 0; i < lLi.length; i++) { //自定义索引 lLi[i].index = i lLi[i].onmouseenter = function () { //清空所有classname for ( var j = 0; j < lLi.length; j++) { lLi[j].className = '' oDiv[j].className = '' } //给相应的li添加上classname this .className = 'active' oDiv[ this .index].className = 'active' } } //右边 for ( var k = 0; k < oDiv.length; k++) { fn(oDiv[k]) } function fn(parent) { //获取用到的元素 var rLi = parent.getElementsByTagName( 'li' ) var oa = parent.getElementsByTagName( 'a' )[0] for ( var i = 0; i < rLi.length; i++) { rLi[i].onmouseenter = function (){ for (j = 0; j < lLi.length; j++) { rLi[j].className = '' } this .className = 'hover' //把li标签中的文字传到a标签中 oa.innerHTML = this .innerHTML } } } </script> |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/colline/article/details/108676930