Jquery制作常用二级菜单导航

自己手动写一个常用的Jquery二级导航下拉菜单效果。

注意点:

1、鼠标到二级的时候要加个定时器来处理中间间隙问题;

2、鼠标进入和离开都要清楚定时器,不然会出现内存泄漏。

 

代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>常用二级菜单导航</title>
<script>

</script>
<style>
*{ margin: 0; padding: 0; }
a{ text-decoration: none; }
li{ list-style: none; }
ul{ width: 400px; margin: 60px auto; }
ul li{ position: relative; display: inline-block; }
ul li > a{ padding: 4px 15px; font-size: 16px; color: #444; font-weight: bold; }
.subnav{ display: none; position: absolute; left: 15px; top: 22px; width: 200px; }
ul li.open .subnav{ display: block; }
</style>
</head>
<body>

  <ul class="nav">
    <li><a href="#">首页</a></li>
    <li>
      <a href="javascript:;" class="o">关于我们</a>
      <div class="subnav">
        <p><a href="#">企业介绍</a></p>
        <p><a href="#">求职招聘</a></p>
        <p><a href="#">团队人员</a></p>
      </div>
    </li>
    <li>
      <a href="javascript:;" class="o">产品中心</a>
      <div class="subnav">
        <p><a href="#">前端开发</a></p>
        <p><a href="#">php工程师</a></p>
        <p><a href="#">c++开发妹子</a></p>
      </div>
    </li>
    <li><a href="#">联系我们</a></li>
  </ul>

</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>

$(document).ready(function(){

  var o =null; 
	
  $('.nav li .o').on('mouseover',  function() {  // 鼠标移动到a上面。给当前添加class
    var _that = this;
    var subli = $(_that).parents('li');
    $('.nav>li').removeClass('open');  //清除原来li上面的class
    subli.addClass('open'); //添加当前class
    clearTimeout(o);  //鼠标移动到另外的a上面需要清除上一个的定时器
  });
$('.nav li .o,.nav li .subnav').on('mouseout', function() { //当鼠标移开a区域,由于有间隙bug。 //当鼠标离开二级目录区域,添加定时器隐藏当前li的class var _that = this; var subli = $(_that).parents('li'); o = setTimeout(function(){ subli.removeClass('open'); }, 100); }); $('.nav li .subnav').on('mouseover', function(e) { //当鼠标移动到二级目录清除上面的定时器。 clearTimeout(o); }); }); </script> </html>

  

效果


           

 

posted @ 2020-05-19 16:53  蜗牛snail  阅读(518)  评论(1编辑  收藏  举报
蜗牛前端 蜗牛文学