一级菜单移入显示二级菜单,一级菜单移除二级菜单消失

258 阅读1分钟

显示效果

二级菜单滑动显示,注意会有个防抖节流问题,居然用stop就解决了!

不触发的状态

image.png

鼠标移上

image.png

鼠标移出效果还原

image.png

代码实现

结构

<div class="category" >
  <span>Category :</span>
  <div class="cate-choose">
    <div class="atitle">
      <div class="item active-item cur">
        <a>
          <p class="active-p">Household DIY</p>
        </a>
      </div>
      <div class="item-child">
        <ul>
          <li><a href="#">Vases</a></li>
          <li><a href="#">Decoration Material</a></li>
          <li><a href="#">Lanterns</a></li>
          <li><a href="#">Living Room Decoration</a></li>
          <li><a href="#">Decoration Pots</a></li>
          <li><a href="#">Artificial Flowers</a></li>
          <li><a href="#">LED Items</a></li>
          <li><a href="#">Decoration Trays/Plate</a></li>
          <li><a href="#">Papeterie</a></li>
        </ul>
      </div>
    </div>
    <div class="atitle">
      <div class="item">
        <a><p>Auto Tool</p></a>
      </div>
      <div class="item-child">
        <ul>
          <li><a href="#">Vases</a></li>
          <li><a href="#">Decoration Material</a></li>
          <li><a href="#">Lanterns</a></li>
          <li><a href="#">Living Room Decoration</a></li>
          <li><a href="#">Decoration Pots</a></li>
          <li><a href="#">Artificial Flowers</a></li>
          <li><a href="#">LED Items</a></li>
          <li><a href="#">Decoration Trays/Plate</a></li>
          <li><a href="#">Papeterie</a></li>
        </ul>
      </div>
    </div>
</div>

样式

.category .atitle{
    position: relative;
    transition: 0.6s;
}

.category .item{
    display: inline-block;
    height: 50px;
    transition: 0.4s;
}

.category .atitle .item-child{
    background-color: #9d9d9d;
    position: absolute;
    z-index: 2;
    text-align: center;
    border: 1px solid #666;
    display: none;
}

.category .atitle .item-child li{
    padding-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #666;
}

.category .atitle .item-child li:hover{
    background-color: #F5F5F5;
}

.category .atitle .item-child li:hover a{
    color: #D2181A;
}

.active-item{
    background-color: #F5F5F5;
}

.category .atitle .active-itemchild{
    display: block;
}

.category .item p{
    font-size: 16px;
    font-family: Helvetica;
    font-weight: 400;
    color: #666666;
    line-height: 50px;
    margin: auto;
    text-align: center;
}

.category .item .active-p{
    color: #D2181A;
}

JS

$('.category .atitle').hover(
    function(){
        // 先隐藏所有的
        $('.category .item').removeClass('active-item')
        $('.category .item p').removeClass('active-p')
        $('.category .item-child').removeClass('active-itemchild')

        // 当前的显示
        $(this).find('.item').addClass('active-item')
        $(this).find('p').addClass('active-p')
        $(this).find('.item').next().stop().slideDown()
    },function(){
        // 隐藏所有的
        $('.category .item').removeClass('active-item')
        $('.category .item p').removeClass('active-p')
        $('.category .item-child').removeClass('active-itemchild')
        $(this).find('.item').next().stop().slideUp()

        // 给当前页面加上
        $('.cur').addClass('active-item')
        $('.cur p').addClass('active-p')
    }
)