所以我有这个演示导航,侧面有一个小按钮,当你将鼠标悬停在按钮上时,它会将菜单滑入窗口。虽然我有悬停工作,但现在当鼠标离开时,它仍然是打开的。怎么解决这个问题? <顺便说一下,我对jQuery很新
这是html:
<div id="demoNav">
<button class="open"></button>
<ul>
<li><a href="index.html">Home Pagina</a></li>
<li><a href="product.html">Product Pagina</a></li>
<li><a href="bestel.html">Bestel Pagina</a></li>
</ul>
</div>
我的jQuery:
$("#demoNav").mouseenter(function(){
$("#demoNav").animate({marginLeft:'0px'}, 500)
});
如果您需要更多信息,请告诉我,我会提供更多代码。
答案 0 :(得分:1)
你实际上并没有告诉它再次隐藏。
那就是说,我想建议这个CSS替代方案:
#demoNav {
transition:margin-left 0.5s ease;
-webkit-transition:margin-left 0.5s ease;
}
#demoNav:hover {
margin-left:0;
}
答案 1 :(得分:1)
试试这个:
$("#demoNav").hover(
function () {
$(this).animate({
marginLeft: '0px'
}, 500)
},
function () {
$(this).animate({
marginLeft: '50px'
}, 500)
});
答案 2 :(得分:0)
添加mouseleave事件 -
$('#demoNav').mouseleave(function(){
$("#demoNav").animate({marginLeft:'50px'}, 500)
});
答案 3 :(得分:0)
使用jQuery:
$("#demoNav").hover(function(){
// do something when mouse hover
},function(){
//do some thing when mouseout
});
答案 4 :(得分:0)
您为mouseenter
编码,但忘记编写mouseleave event
在jQuery中添加这些行
$("#demoNav").mouseleave(function(){
$("#demoNav").animate({'marginLeft':'50px'}, 500)
});
这里的工作示例:
但我建议使用更清洁的悬停方法
syntax: $(selector).hover(handlerIn, handlerOut)
答案 5 :(得分:0)
可能是这个解决方案有效
$('#demoNav .open').on("mouseenter", function(){ $(this).parent().animate({marginLeft:'0px'}, 500); });
$('#demoNav').on("mouseleave", function(){ $(this).animate({marginLeft:'50px'}, 500); });
这会在按钮悬停时激活窗格,但是当你离开div时,它会再次动作左移