微信扫一扫打赏支持

js进阶 13-9/10 jquery如何实现三级列表

js进阶 13-9/10 jquery如何实现三级列表

一、总结

一句话总结:用的是定位,父标签相对定位,子标签就可以绝对定位了,绝对定位的孩子还是可以设置绝对定位。用toggle设置子菜单显示和隐藏。用的是jquery的hover方法。

 

1、鼠标滑过的时候最常设置的属性是什么?

透明度 opacity

 

2、如何让一级菜单下的二级菜单显示而三级菜单不显示?

.menu>li:hover>ul{display:none}
直接选择孩子,而不要选择子辈
而且注意这里是li:hover,也就是被鼠标悬浮的那个li的孩子ul(下级菜单)

 

3、如何实现被鼠标悬浮的那个li的孩子ul(下级菜单)显示出来?

.menu>li:hover>ul{display:none}
而且注意这里是li:hover

也可以直接用jquery的hover方法

47       $('.menu li').hover(function(){
48         $(this).children('ul').toggle()
49       })

 

4、如何滑动二级菜单让三级菜单显示出来?

注意这里用到了多个li:hover

21       .menu>li:hover>ul>li:hover>ul{display: block;}*/

 

5、元素的显示和隐藏切换用什么?

toggle

 

6、三级菜单的本质是什么?

元素的显示和隐藏 + 元素的定位

 

 

二、jquery如何实现三级列表

1、相关知识

三级导航

案例描述:用两种方法实现一个简单的三级导航栏。

案例重点:该案例非本身并不复杂,重点在于对思路的理解。

 

2、代码

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <style>
 4 </style>
 5 <head>
 6   <meta charset="UTF-8">
 7   <title>演示文档</title>
 8   <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
 9   <style type="text/css">
10       *{padding: 0;margin:0;}
11       a{color: #fff;text-decoration: none;}
12       .menu{background: orange;height: 30px;line-height: 30px;}
13       .menu li{list-style-type: none;float: left; position: relative;}
14       .menu li a{display: block;height: 30px;float: left;margin-left: 10px}
15       .menu li ul{position: absolute;display: none;}
16       .first{top: 30px}
17       .first li a{width: 100px;background: rgba(100,50,30,0.6)}
18       .first li a:hover{width: 100px;background: rgba(100,50,30,0.8)}
19       .first_2{left: 100px}
20      /* .menu>li:hover>ul{display: block;}
21       .menu>li:hover>ul>li:hover>ul{display: block;}*/
22 
23   </style>
24 </head>
25 <body>
26     <ul class="menu">
27       <li><a href="#">菜单一</a>
28         <ul  class="first">
29           <li><a href="#">菜单一</a></li>
30           <li><a href="#">菜单二</a></li>
31           <li><a href="#">菜单三</a></li>
32           <li><a href="#">菜单四<span></span></a>
33               <ul class="first_2">
34                 <li><a href="#">菜单一</a></li>
35                 <li><a href="#">菜单二</a></li>
36                 <li><a href="#">菜单三</a></li>
37                 <li><a href="#">菜单四</a></li>
38               </ul>
39           </li>
40         </ul>
41       </li>
42       <li><a href="#">菜单二</a></li>
43       <li><a href="#">菜单三</a></li>
44       <li><a href="#">菜单四</a></li>
45     </ul>
46     <script>
47       $('.menu li').hover(function(){
48         $(this).children('ul').toggle()
49       })
50     </script>
51 </body>
52 </html>

 

 

 
posted @ 2018-07-19 23:27  范仁义  阅读(564)  评论(0编辑  收藏  举报