单击时隐藏 <nav>
Hide <nav> on click
为打开 'site map' 风格的 link 的客户创建了一个小导航,这与过去的菜单后菜单很流行,而且效果很好。
点击打开,鼠标离开后隐藏 div。但是,现在我 运行 遇到了一个问题,因为我们已经在该导航中引入了锚点 link。只有在鼠标离开后它才会消失,页面将转到导航后面请求的锚 link,但在鼠标离开之前不会消失。
我想我可以添加一条线来在点击时移动它,但这没有任何作用。我改变了使背景变红的动作,只是为了确保它正在触发并且确实如此,但它只是不想像其他人那样调整顶部(我隐藏的方式)。希望有人可以看看并告诉我我缺少什么!谢谢大家
这是 javascript
$(document).ready(function () {
$("#nav_hover").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "95px");
}, 20);
});
$("#nav_hover").mouseleave(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 800);
});
});
这是 'expanded nav' 的导航栏:
<nav id="main_nav">
<ul>
<a id="nav_hover">
<li>Nav Option</li>
</a>
</ul>
</nav>
这是展开的导航栏,我想在点击时隐藏它:
<nav id="nav_expanded_nav" class="expanded_nav">
<ul class="main_catagory_nav">
<h1>Heading</h1>
<p>Description</p>
<li><a href="http://www.theplace.com/link.shtml#anchor">Link 1</a></li>
<li><a href="http://www.theplace.com/link.shtml#anchor2">Link 2</a></li>
</ul>
</nav>
这就是我所需要的!
$(document).ready(function () {
$("#nav_hover").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "95px");
}, 20);
});
$("#nav_hover").mouseleave(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 800);
});
$(".nav_expanded_nav a").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 20);
});
});
但它什么也没做。如果我将 iut 更改为 .css("background", "red")
,它确实会很好地更改 div 的背景,这至少证实了它是正确的想法。但它不能影响 css
的 'top'
这是我的尝试:使 #nav_expanded_nav
始终 hidden
。然后当 #nav_hover
单击时将 visibility
更改为 visible
。当在 #nav_expanded_nav
中单击锚标记时,将其可见性更改回 hidden
当用户离开 #nav_expanded_nav
时也会发生同样的情况。
CSS:
#nav_expanded_nav {
visibility: hidden;
}
jQuery:
$(document).ready(function() {
$("#nav_hover").click(function() {
$("#nav_expanded_nav").css("visibility", "visible");
});
$("#nav_expanded_nav > ul > li > a ").click(function() {
$('#nav_expanded_nav').css("visibility", "hidden");
});
$("#nav_expanded_nav").mouseleave(function(){
$(" #nav_expanded_nav").css("visibility", "hidden");
});
});
看到一个 example pen。
为打开 'site map' 风格的 link 的客户创建了一个小导航,这与过去的菜单后菜单很流行,而且效果很好。
点击打开,鼠标离开后隐藏 div。但是,现在我 运行 遇到了一个问题,因为我们已经在该导航中引入了锚点 link。只有在鼠标离开后它才会消失,页面将转到导航后面请求的锚 link,但在鼠标离开之前不会消失。
我想我可以添加一条线来在点击时移动它,但这没有任何作用。我改变了使背景变红的动作,只是为了确保它正在触发并且确实如此,但它只是不想像其他人那样调整顶部(我隐藏的方式)。希望有人可以看看并告诉我我缺少什么!谢谢大家
这是 javascript
$(document).ready(function () {
$("#nav_hover").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "95px");
}, 20);
});
$("#nav_hover").mouseleave(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 800);
});
});
这是 'expanded nav' 的导航栏:
<nav id="main_nav">
<ul>
<a id="nav_hover">
<li>Nav Option</li>
</a>
</ul>
</nav>
这是展开的导航栏,我想在点击时隐藏它:
<nav id="nav_expanded_nav" class="expanded_nav">
<ul class="main_catagory_nav">
<h1>Heading</h1>
<p>Description</p>
<li><a href="http://www.theplace.com/link.shtml#anchor">Link 1</a></li>
<li><a href="http://www.theplace.com/link.shtml#anchor2">Link 2</a></li>
</ul>
</nav>
这就是我所需要的!
$(document).ready(function () {
$("#nav_hover").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "95px");
}, 20);
});
$("#nav_hover").mouseleave(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 800);
});
$(".nav_expanded_nav a").click(function () {
setTimeout(function () {
$("#nav_features #nav_expanded_nav.expanded_nav").css("top", "-800px");
}, 20);
});
});
但它什么也没做。如果我将 iut 更改为 .css("background", "red")
,它确实会很好地更改 div 的背景,这至少证实了它是正确的想法。但它不能影响 css
这是我的尝试:使 #nav_expanded_nav
始终 hidden
。然后当 #nav_hover
单击时将 visibility
更改为 visible
。当在 #nav_expanded_nav
中单击锚标记时,将其可见性更改回 hidden
当用户离开 #nav_expanded_nav
时也会发生同样的情况。
CSS:
#nav_expanded_nav {
visibility: hidden;
}
jQuery:
$(document).ready(function() {
$("#nav_hover").click(function() {
$("#nav_expanded_nav").css("visibility", "visible");
});
$("#nav_expanded_nav > ul > li > a ").click(function() {
$('#nav_expanded_nav').css("visibility", "hidden");
});
$("#nav_expanded_nav").mouseleave(function(){
$(" #nav_expanded_nav").css("visibility", "hidden");
});
});
看到一个 example pen。