当前位置: 首页 > 知识库问答 >
问题:

水平导航栏悬停效果jquery

崔高远
2023-03-14

我想创建一个基本的导航栏,如果你悬停在一个链接上,一个div显示(子菜单)。当我悬停在一个不同的链接上时,会显示一个不同的div。我当前的问题是,当我悬停在链接上,然后移动到子菜单上时,它也会消失(不是我想要的)。我怎么才能避免呢?只有当我没有在子菜单或该div的相应链接上悬停时,该子菜单才应该消失。

<ul class="menu">
    <li><a href="#" id="link0">Caviar</a><span>test</span></li>
    <li><a href="#" id="link1">Athena</a></li>
    <li><a href="#" id="link2">Knot</a></li>
    <li><a href="#" id="link3">Brooke Leaf</a></li>
</ul>

<div id="menulink0" class="sub-menu">Some text for the first link</div>
<div id="menulink1" class="sub-menu">Some text for the second link</div>
<div id="menulink2" class="sub-menu">Some text for the third link</div>
<div id="menulink3" class="sub-menu">Some text for the fourth link</div>

jQuery:

var $submenus = $('.sub-menu');
var $links = $('.menu a, .sub-menu').hover(function(e) {
  e.stopPropagation();
    $submenus.filter('#menu' + this.id).show();
}, function(e) {
  e.stopPropagation();

  $submenus.filter('#menu' + this.id).hide();
});

示例代码:http://jsfiddle.net/qlhj9rkm/123/

共有3个答案

戚建华
2023-03-14
热门标签
南宫保臣
2023-03-14
相关问题
孙永思
2023-03-14

在这种情况下,我会完全跳过JavaScript,因为只使用CSS就可以轻松地实现您想要的东西。

使其工作的关键是对HTML进行结构化,使

嵌套在
  • :

    <li><a href="#" id="link0">Caviar</a><span>test</span>
      <div id="menulink0" class="sub-menu">Some text for the first link</div>
    </li>
    

    现在,只要您将鼠标悬停在菜单项上,一个简单的样式表就可以显示

    :

    li:hover .sub-menu { 
      display: block;
    }
    

    下一个问题是希望如何显示子菜单。现在,顶层菜单将调整大小以适应子菜单。通常的解决方法是使用相对和绝对定位。我添加了一个片段来向您展示它是如何工作的。

    null

    .sub-menu {
      border: solid 2px black;
      background-color: red;
      display: none;
      padding: 20px;
      /* Add this to make the submenu a floating submenu */
      position: absolute;
      width: 200px; /* Or some reasonable value */
    }
    
    ul {
      padding: 10px;
      list-style: none;
    }
    
    li {
      padding: 10px;
      float: left;
      /* Add this to make the submenu a floating submenu */
      position: relative;
    }
    
    
    /* Add this to make the hover work */
    li:hover .sub-menu {
      display: block;
    }
    
    a {
      border: solid 1px;
    }
    
    .show {
      display: block;
    }
    <ul class="menu">
      <li><a href="#" id="link0">Caviar</a><span>test</span>
        <div id="menulink0" class="sub-menu">Some text for the first link</div>
      </li>
      <li><a href="#" id="link1">Athena</a>
        <div id="menulink1" class="sub-menu">Some text for the second link</div>
      </li>
      <li><a href="#" id="link2">Knot</a>
        <div id="menulink2" class="sub-menu">Some text for the third link</div>
      </li>
      <li><a href="#" id="link3">Brooke Leaf</a>
        <div id="menulink3" class="sub-menu">Some text for the fourth link</div>
      </li>
    </ul>

  •  类似资料:
    • 本文向大家介绍jQuery实现菜单栏导航效果,包括了jQuery实现菜单栏导航效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jQuery实现菜单栏导航效果的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

    • 本文向大家介绍jquery实现垂直和水平菜单导航栏,包括了jquery实现垂直和水平菜单导航栏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jquery菜单导航栏的实现代码,供大家参考,具体内容如下 1.HTML代码 2.CSS代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

    • 我在图像画廊遇到了一些麻烦。为了实现翻转效果,我有这个jQuery脚本: 这样做的目的是找到图库,在图库图像周围应用一个包装器,当鼠标悬停在该项目上时,它会变为灰度,并且在现有图库的上方会出现一个标题div(带有.caption类)。该图库由9个缩略图组成,脚本将包装器和标题应用于所有现有的图库项目,但我只在第一个缩略图上获得悬停效果。 这是图库超文本标记语言的示例: 这是我得到的CSS: 知道为

    • 使用Bootstrap3,我试图找出如何触发

    • 本文向大家介绍jQuery+css实现非常漂亮的水平导航菜单效果,包括了jQuery+css实现非常漂亮的水平导航菜单效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery+css实现非常漂亮的水平导航菜单效果。分享给大家供大家参考,具体如下: 运行效果截图如下: 用到的背景图片tab.gif如下: 具体代码如下: 更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQu

    • 本文向大家介绍javascript实现导航栏分页效果,包括了javascript实现导航栏分页效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现导航栏分页效果的具体代码,供大家参考,具体内容如下 1、结构搭建HTML代码 2、页面修饰的css样式代码 3、js代码 4、效果图 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

    • 本文向大家介绍Flutter实现底部导航栏效果,包括了Flutter实现底部导航栏效果的使用技巧和注意事项,需要的朋友参考一下 大家最近都在讨论新鲜技术-flutter,小编也在学习中,遇到大家都遇到的问题,底部导航。下面给大家贴出底部导航的编写,主要参考了lime这个项目。 上代码 一.在main.dart文件中 定义APP的基本信息 其中主要代码部分 其中,各个页面的主要声明 底部导航栏的内容

    • 当前的效果是悬停时会有伸长的下划线, 但是会有一个问题, 只能做一行 如果我把p标签结构改成如下 那么如何在悬停时让每一行都出现线条?