当我快速将指针移动到它显示的子<ul>
时,在Tile 4 <li>
上悬停时,将显示Tile 4 sub <ul>
。如果我使用jQuery缓慢移动到子级别,我怎么能避免隐藏sub ul?
https://jsfiddle.net/id10922606/8qkt6b07/22/
$(document).ready(function () {
//Fade effect
$(".tile_nav li").hover(function () {
$(this).siblings().css("opacity", .5);
}, function () {
$(this).siblings().css("opacity", 1);
});
});
.tile_nav {
width:241px;
list-style:none;
}
.tile_nav li {
width:60px;
height:60px;
float:left;
list-style:none;
background:#ccc;
margin:0 1px 1px 0;
}
.tile_nav li a {
width:60px;
height:60px;
display:block;
}
.tile_subnav li {
background:red;
}
.tile_nav li ul {
display:none;
margin:2px;
}
.tile_nav li:hover ul {
display:block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="tile_nav">
<li><a href="#">Tile</a></li>
<li><a href="#">Tile</a></li>
<li><a href="#">Tile</a></li>
<li><a href="#">Tile</a></li>
<li><a href="#">Tile</a></li>
<li><a href="#">Tile 4</a>
<ul class="tile_subnav">
<li><a href="#">Sub 1 of Tile 4</a>
</li>
<li><a href="#">Sub 2 of Tile 4</a>
</li>
</ul>
</li>
</ul>
答案 0 :(得分:0)
保证金是你的问题。当指针越过空白区域时,悬停结束。尝试没有边距和一些边框。
答案 1 :(得分:0)
您可以通过确保鼠标指针永远不会离开触发li
(及其子ul
)来实现。为此,请从子2px
中删除ul
的上边距,否则元素之间有2px空间,既不属于父li
也不属于子{{1} }}
ul
https://jsfiddle.net/8qkt6b07/23/
答案 2 :(得分:0)
获得所需的结果。设置位置:相对于li和位置:子菜单上的绝对值。
我更新了你的css:
.tile_nav { width:241px; list-style:none; }
.tile_nav li { width:60px; height:60px; float:left; list-style:none; margin:0 1px 1px 0; background:#ccc; position: relative;}
.tile_nav li a { width:60px; height:60px; display:block; }
.tile_subnav li { background:red;}
.tile_nav li ul {display:none; position: absolute; top: 62px;}
.tile_nav li:hover ul {display:block;}
答案 3 :(得分:0)
即使没有 jquery ,您也可以这样做。
最简单的方法是以margin: 2px;
样式将border: 2px solid transparent;
更改为.tile_nav li ul
。
<强> E.g。强>
代替:
.tile_nav li ul {
display:none;
margin: 2px;
}
将其更改为:
.tile_nav li ul {
display:none;
border: 2px solid transparent;
}
顺便说一下,我发现第一项旁边的子菜单列表存在问题。如果将光标缓慢移动到第一个项目旁边的子菜单列表,子菜单列表将消失。
要解决此问题,请尝试添加此css :
.tile_nav li ul li {
border-top: 1px solid transparent;
margin: 0;
}
动画示例:JsFiddle link
希望它有所帮助。