jQuery实现横纵向菜单

本文介绍了如何利用jQuery实现横纵向菜单。通过示例代码展示了如何处理click()和hover()事件,以及使用next()和slideToggle()方法来切换菜单的显示和隐藏。示例包括横向和纵向两种类型的下拉菜单,简化了JavaScript操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学了有一段时间的js,jQuery,不过作为js的一个类库,jQuery在js中的角色是举足轻重的,

jquery真的很强大,就像它的一句代言词:write less,do  more

下面我就献丑一下,刚刚用jQuery实现的横纵向菜单

比如:在js中首先找到发生a事件的b元素

1.a有click()事件,第一种横向的是通过鼠标点击发生的下拉菜单

也有hover()事件,第二种纵向的是通过a:hover发生的下拉菜单

2.b通过$(".main>a"),在jq中" > "指父子关系

3.然后 $(this).next("ul")是在.main>a元素紧邻的后面同辈元素的元素集合

主要看js代码

// JavaScript Document
$(document).ready(function(e) {
    $(".main>a").click(function(){
var ulNode=$(this).next("ul");
//第一种  比较繁琐
/*if(ulNode.css("display")=="none"){
ulNode.css("display","block");
}
else{
ulNode.css("display","none");
}

//第二种  较繁琐
if(ulNode.css("display")=="none"){
  ulNode.show(500);
  }
else{
ulNode.hide(500);
    }
//第三种 很好
ulNode.toggle(300);*/
//第四种  更好
ulNode.slideToggle("normal");
});

$(".hmain>a").hover(function(){
  $(this).next("ul").slideToggle();
});

});

html,css代码很简单哦

<ul id="ul1">
  <li class="main">
  <a href="#">菜单1</a>
    <ul class="ul2">
      <li><a href="#">菜单11</a></li>
      <li><a href="#">菜单12</a></li>
    </ul>
  </li>
  <li class="main">
  <a href="#">菜单2</a>
    <ul class="ul2">
      <li><a href="#">菜单21</a></li>
      <li><a href="#">菜单22</a></li>
    </ul>
  </li>
  <li class="main">
  <a href="#">菜单3</a>
    <ul class="ul2">
      <li><a href="#">菜单31</a></li>
      <li><a href="#">菜单32</a></li>
    </ul>
  </li>
</ul>
<!-- 纵向菜单-->
<br /><br />
<ul id="hul">
  <li class="hmain">
  <a href="#">菜单1</a>
    <ul class="ul2">
      <li><a href="#">菜单11</a></li>
      <li><a href="#">菜单12</a></li>
    </ul>
  </li>
  <li class="hmain">
  <a href="#">菜单2</a>
    <ul class="ul2">
      <li><a href="#">菜单21</a></li>
      <li><a href="#">菜单22</a></li>
    </ul>
  </li>
  <li class="hmain">
  <a href="#">菜单3</a>
    <ul class="ul2">
      <li><a href="#">菜单31</a></li>
      <li><a href="#">菜单32</a></li>
    </ul>
  </li>
</ul>

css代码

ul {
list-style-type: none;
}
ul, li {
margin: 0px;
padding: 0px;
}
#ul1 {
width: 100px;
}

.main,.hmain {
background-color: #666;
width: 100px;
}
.main li,.hmain li {
background-color: #CCC;
}
a {
text-decoration: none;
display: block;
padding-left: 20px;
}
.main a,.hmain a {
color: #FFF;
background-image: url(../../ImageTransitions/ImageTransitions/images/arrow.png);
background-repeat: no-repeat;
background-position: 0px center;
padding-top: 4px;
padding-right: 4px;
padding-bottom: 4px;
}


.main li a,.hmain li a {
color: #333;
background-image: none;
}
.ul2 {
display: none;
}
#hul {
position: relative;
}
.hmain {
float: left;
margin-right:2px;
width: 100px;
background-color: #666;
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值