您的位置:首页 > Web前端 > JQuery

jQuery实现菜单的隐藏和显示

2017-07-30 10:50 288 查看


首先我们先制作好菜单的大致框架,然后再利用jQuery对菜单的隐藏和显示属性进行判断,如果是隐藏的就显示,如果是显示的就隐藏

我们先用一个ul写出大概的框架

ul>li*4这是一个简便的写法按tab键就可以实现如下的效果
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>


<ul>
<li>学生管理
<ul>
<li>添加学生</li>
<li>修改学生</li>
<li>删除学生</li>
</ul>
</li>
<li>班级管理
<ul>
<li>添加班级</li>
<li>修改班级</li>
<li>删除班级</li>
</ul>
</li>
<li>教师管理
<ul>
<li>添加教师</li>
<li>修改教师</li>
<li>删除教师</li>
</ul>
</li>
</ul>


我们先在大的ul里面写三个li,然后再在每一个li里面写一个ul,

效果如图所示



接下来就是对ul添加样式

由于这里我们不好添加对应的CSS样式,所以改用section的方法

section和div的区别

这里我们用一个大的section来包住所有的标题

然后再给每一个标题用一个ul来表示

div*3 按tab 进行快速编码

<section>
<div>学生管理</div>
<ul>
<li>添加学生</li>
<li>修改学生</li>
<li>删除学生</li>
</ul>
<div>班级管理</div>
<ul>
<li>添加班级</li>
<li>修改班级</li>
<li>删除班级</li>
</ul>
<div>教师管理</div>
<ul>
<li>添加教师</li>
<li>修改教师</li>
<li>删除教师</li>
</ul>
</section>


这里可以直接在div的后面写ul不用div包起来



然后我们为每一个div添加一个css样式

div{
width: 200px;
height: 25px;
background-color: lightcyan;
line-height: 25px;
border: 1px solid lightgray;
padding-left: 25px;
font-size: 15px;
}
ul{
font-size: 15px;
}


如图所示


那么下面我们的任务就是为每一个div添加一个点击事件,先判断属性是隐藏还是显示,如果是显示就设置为隐藏,如果是隐藏就显示

我们先把默认第一个显示 第二个和第三个隐藏

$("ul:eq(1),ul:last-child").hide();


//  先将第二个和最后一个隐藏
$("ul:eq(1),ul:last-child").hide();
$("div").click(function(){
//      console.log($(this));
//这里选中的div,而我们要隐藏的是ul,所以要用next()
var ul= $(this).next()
if(ul.is(":hidden")){
ul.show();
}else{
ul.hide();
}
})




但是这里又有一个问题是,我们需要点击另外一个的同时将已经显示隐藏起来

var click_ul= $(this).next();
if(click_ul.is(":hidden")){
//          在让点击的ul显示的时候,需要将所有的ul先隐藏
$("ul").hide();
click_ul.show();
}else{
click_ul.hide();
}


那么现在我们就已经实现了所有的功能



但是这个效果有点生硬,我们可以将隐藏换成slideup(),把show()换成slidedown()

我们再看看效果



这个和上面相比就没有那么生硬了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: