学习笔记

  > 导航的二级菜单弹出的代码编写(第二部分,Mobile部分)

导航的二级菜单弹出的代码编写(第二部分,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

导航菜单代码编写的第二部分,手机端的编写。

作者:澎蠡

让学习成为一种习惯,让知识交流变成一种生活方式。