【发布时间】:2015-03-10 02:28:44
【问题描述】:
我有一个导航栏ul 带有图标,另一个ul 对齐在一个固定位置显示在它旁边,每个图标都有一个标签。当用户将鼠标悬停在导航栏中的li 上时,我希望第二个ul 中对应的li 变为可见,然后在光标离开时再次隐藏。
我尝试过使用 :hover 的 CSS 解决方案和使用 .show() 和 .hide() 的 jQuery 解决方案,但由于某种原因它没有发生。
HTML:
<ul id="vnav">
<li id="vis"><a class="vnavlink" href="#1"><span class="glyphicon glyph2 glyphicon-eye-open" aria-hidden="true" aria-label="Vision"></span></a></li>
<li id="val"><a class="vnavlink" href="#2"><span class="glyphicon glyph2 glyphicon-ok" aria-hidden="true" aria-label="2"></span></a></li>
<li id="foo"><a class="vnavlink" href="#3"><span class="glyphicon glyph2 glyphicon-ok" aria-hidden="true" aria-label="3"></span></a></li>
<li id="dri"><a class="vnavlink" href="#4"><span class="glyphicon glyph2 glyphicon-ok" aria-hidden="true" aria-label="4"></span></a></li>
<li id="eng"><a class="vnavlink" href="#5"><span class="glyphicon glyph2 glyphicon-ok" aria-hidden="true" aria-label="5"></span></a></li>
</ul>
<ul>
<li class="vbox" id="visbox">Vision</li>
<li class="vbox" id="valbox">v2</li>
<li class="vbox" id="foobox">v3</li>
<li class="vbox" id="dribox">v4</li>
<li class="vbox" id="engbox">v5</li>
</ul>
CSS:
#vnav {
list-style-type: none;
text-decoration: none;
position:fixed;
left:0;
top:350px;
z-index:1;
}
#visbox {
left:95px;
top:368px;
}
.vbox {
position:fixed;
z-index:1;
height:40px;
width:120px;
visibility:hidden;
}
#vnav:hover + #vbox {
visibility:visible;
}
或者,这是我使用 jQuery 的尝试之一:
$(document).ready(function() {
$('#visbox').hide();
});
(注意,我还尝试将 CSS 中的默认设置为 visibility:hidden 或 display:hidden)
$('#vis').hover(function(){
$('#visbox').show();},
function(){
$('#visbox').hide();
});
【问题讨论】:
-
我已经尝试根据您给我们的内容拼凑出一个小提琴:jsfiddle.net/axuj6089 我们显然需要更多的 CSS。您的 CSS 尝试存在两个问题:
+是同级选择器,vbox不是#vnav的同级。此外,vbox是一个类而不是一个 ID。还可以尝试使用display:none代替visability:hidden和display:block代替visibility:visible;。有关差异,请参阅此 SO 问题:stackoverflow.com/questions/133051/… -
感谢 Jon - 我在尝试时确实将 vbox 作为一个类;我只是在这里打错了。我设法获得了与您之前使用 css 获得的结果相同的结果,但我想要的是每个图标(即每个
- )只使一个标签可见(即第二个
- 中只有一个
- ),而不是整个
- 呈现整个第二个
- 在悬停时可见,就像这里发生的那样。
- )只使一个标签可见(即第二个
标签: jquery css visibility show-hide