我想创建一个基本的导航栏,如果你悬停在一个链接上,一个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/
在这种情况下,我会完全跳过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标签结构改成如下 那么如何在悬停时让每一行都出现线条?