导航的二级菜单弹出的代码编写(第二部分,Mobile部分)
昨天,我们写了,PC端的导航菜单的代码,接下来来进行移动端的代码的编写。
其实和昨天的类似,只不过这次我们不需要绝对定位了,只需要进行导航的折叠和展开就可以了。
这里要使用jquery来进行触发条件的处理。
-------------------------------------------------
话不多说,先上html代码。
<!-- mobile --> <div class="nav mobile"> <span class="logo">采桑子学习网</span> <a href="javascript:;" class="nav-trigger"> <span class="nav-icon"></span> </a> <nav> <ul class="nav-list"> <li><a href="/">首页</a></li> <?php foreach ($menu as $k => $v): ?> <li> <a href="<?php echo $v['url']; ?>"><?php echo $v['name']; ?></a> <div class="pop"> <ul class="clearfix"> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> </ul> </div> </li> <?php endforeach ?> </ul> </nav> </div> <!-- /mobile -->
同样道理,我们依旧在li的里面添加pop这个二级菜单的层。
<div class="pop"> <ul class="clearfix"> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> </ul> </div>
由于我们之前做了适配pc端的css,所以手机端的css,要修改为
nav .pop { z-index: 299; display: block; position: static; background: #fff; top: 50px; left: 0; box-shadow: none; }
我们看到变成了上面的样子
然后我们稍微调整下样式。
nav .pop { display: block; position: static; box-shadow: none; } nav .pop .children a { text-align: left; }
然后我们加入js点击事件。来处理。
但是这里值得注意的一点就是,如果这个一级菜单点击展开了,就没有办法跳转了
所以程序中有必要进行处理,如果有二级菜单的话就展开,如果没有的话,就JavaScript展开处理。
html代码
<ul class="nav-list"> <li><a href="/">首页</a></li> <?php foreach ($menu as $k => $v): ?> <li class="has_children"> <a href="javascript:;"><?php echo $v['name']; ?></a> <div class="pop"> <ul class="clearfix"> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> </ul> </div> </li> <?php endforeach ?> </ul>
加入了has_children这个分类,用来寻找他的子元素pop,然后用slideToggle()方法进行展开处理。
$(".has_children a").click(function(){ $(this).siblings(".pop").slideToggle(); })
如图
ok,mobile端的也搞定。剩下的样式,请自行调整。
发布时间:2017-09-28,14:19:06
导航菜单代码编写的第二部分,手机端的编写。