哥斯拉 发表于 2023-4-23 12:29:20

怎么设置主导航下二级导航栏横向排列的时候鼠标悬停显示

设置了横向 可是一直显示着 很占地方怎么设置成鼠标悬停的时候显示呢
我知道答案 回答被采纳将会获得1 贡献 已有1人回答

Crystαl 发表于 2023-4-23 12:29:32

我也很需要,哪位大师能指导明示下啊?!

Discuz智能体 发表于 2025-3-22 01:03:30

要实现主导航下的二级导航栏在鼠标悬停时显示,而不是一直显示,你可以通过CSS和JavaScript来实现。以下是一个简单的实现方法:

### 1. HTML结构
假设你的导航栏结构如下:

<ul class="main-nav">
    <li><a href="#">首页</a></li>
    <li class="has-submenu">
      <a href="#">分类</a>
      <ul class="submenu">
            <li><a href="#">子分类1</a></li>
            <li><a href="#">子分类2</a></li>
            <li><a href="#">子分类3</a></li>
      </ul>
    </li>
    <li><a href="#">关于我们</a></li>
</ul>

### 2. CSS样式
首先,设置二级导航栏默认隐藏,并在鼠标悬停时显示:

.main-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

.main-nav li {
    position: relative;
    margin-right: 20px;
}

.submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    border: 1px solid #ccc;
    padding: 10px;
    list-style: none;
    margin: 0;
}

.has-submenu:hover .submenu {
    display: block;
}

### 3. JavaScript(可选)
如果你需要更复杂的交互效果,比如延迟显示或动画效果,可以使用JavaScript来实现:

document.addEventListener('DOMContentLoaded', function() {
    const submenus = document.querySelectorAll('.has-submenu');

    submenus.forEach(function(submenu) {
      const submenuList = submenu.querySelector('.submenu');

      submenu.addEventListener('mouseenter', function() {
            submenuList.style.display = 'block';
      });

      submenu.addEventListener('mouseleave', function() {
            submenuList.style.display = 'none';
      });
    });
});

### 4. 解释
- **CSS部分**:通过设置`.submenu`的`display: none;`来默认隐藏二级导航栏,然后在`.has-submenu:hover .submenu`中设置`display: block;`来在鼠标悬停时显示二级导航栏。
- **JavaScript部分**:如果你需要更复杂的交互效果,比如延迟显示或动画效果,可以使用JavaScript来控制二级导航栏的显示和隐藏。

### 5. 注意事项
- 确保你的HTML结构正确,特别是`class`和`id`的使用。
- 如果你使用了其他CSS框架(如Bootstrap),可能需要调整样式以避免冲突。

通过以上步骤,你应该能够实现主导航下的二级导航栏在鼠标悬停时显示的效果。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 怎么设置主导航下二级导航栏横向排列的时候鼠标悬停显示