LOGO
外贸网站建设,让业务全球可达
0%
新闻中心 网络推广 网站建设 服务器相关 优化推广 首页>新闻>网站建设

当有二级导航的时候,鼠标点击后无法隐藏二级导航如何解决?

时间:2025-12-14   访问量:0

当有二级导航的时候,鼠标点击后无法隐藏二级导航如何解决?


如图所示,一个网站有一个很大的二级导航,当点击一级导航后,切换到二级页面,二级导航会因为鼠标没有动,还会在原处,导致二级下拉菜单依旧还在,从而让人感觉网页没有切换,特别是小分辨下。

那么这个问题如何解决呢?

我们的解决思路是:

当点击某个栏目切换之后,给这个栏目添加一个:active的属性。

然后通过CSS强制隐藏掉active下面的二级导航。

第三步就是当鼠标离开这个导航之后,又需要去掉:active这个属性,防止再次鼠标滑动上去的时候,二级导航不显示。

所以我们分两步:

第一步:添加CSS

/* 如果当前 nav-item 有 .noshow 类,则强制隐藏 */
.nav-item.noshow .submenu {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}


第二步:添加JS

<script>    
	document.addEventListener('DOMContentLoaded', function () {    
const navItems = document.querySelectorAll('.navbar-nav .nav-item');    
navItems.forEach(item => {    
const link = item.querySelector('.nav-link');    
if (!link) return;    
// 点击时给当前项加 .noshow    
link.addEventListener('click', () => {    
item.classList.add('noshow');    
});    
// 鼠标移开时移除 .noshow   
item.addEventListener('mouseleave', () => {    
item.classList.remove('noshow');    
});    
});    
});    
</script>


修改成JQ:

/**********PC端导航解决当鼠标点击后隐藏二级分类*************/
$(document).ready(function () {
  $('.navbar-nav .nav-item').each(function () {
    const $item = $(this);
    const $link = $item.find('.nav-link');

    if ($link.length === 0) return;

    // 点击时给当前项加 .noshow
    $link.on('click', function () {
      $item.addClass('noshow');
    });

    // 鼠标移开时移除 .active
    $item.on('mouseleave', function () {
      $item.removeClass('noshow');
    });
  });
});


服务咨询
1对1咨询,专业客服为您解疑答惑
联系销售
15899750475
在线咨询
联系在线客服,为您解答所有的疑问
ARE YOU INTERESTED IN ?
感兴趣吗?

有关我们服务的更多信息,请联系项目经理

15899750475 杨先生