【发布时间】:2015-12-14 15:21:12
【问题描述】:
基本上,我有一个 <nav> 元素,它应该在 mouseover 上从左到右展开,但有时如果你快速将指针放在元素上方然后移出元素,它会在没有动画的情况下工作,这应该不会发生。
这是 HTML 代码:
$('#navigation').hover(function() {
$(this).animate({
left: 190
}, {
duration: 500
});
}, function() {
$(this).animate({
left: 0
}, {
duration: 1000,
queue: false
});
});
nav.menu-nav {
margin-left: -190px;
width: 200px;
height: 100%;
position: fixed;
background-color: #edf0f3;
border-right: 1px solid #f7f8fa;
}
.menu-nav h1 {
width: 100%;
position: relative;
text-align: center;
margin: 0;
padding: 0;
font-family: 'Lobster', cursive;
}
.menu-nav ul {
width: 100%;
margin-top: 30px;
list-style-type: none;
}
.menu-nav li {
cursor: pointer;
height: 40px;
position: static;
margin: 20px 0 -20px -50px;
padding-left: 80px;
transition: 1s background-color;
}
.menu-nav li:hover {
background-color: #a5b3c3;
}
.menu-nav a {
color: #000000;
text-decoration: none;
}
button.account {
position: fixed;
bottom: 20px;
}
.acc-register {
margin-left: 5px;
}
.acc-login {
margin-left: 105px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylsheet" type="text/css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.css" rel="stylesheet" type="text/css">
<nav class="menu-nav" id="navigation">
<h1>
mipagina
</h1>
<ul>
<li><a href="#">Inicio</a></li>
<li><a href="#">Nosotros</a></li>
<li><a href="#">Contacto</a></li>
</ul>
<button class="account acc-register btn btn-primary">
<i class="fa fa-user-plus"></i> Register
</button>
<button class="account acc-login btn btn-default">
<i class="fa fa-sign-in"></i> Login
</button>
</nav>
<div class="contenido">
<p>
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas
sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora
incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate
velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
</p>
</div>
如果您对我在这里做错了什么让这种情况发生有任何线索(或者您对我应该改变什么有任何建议),请告诉我。
谢谢!
【问题讨论】:
-
有点不清楚你在问什么。您是否尝试过在
.animate()之前添加.stop()以确保动画不会以不需要的方式排队?我发现它解决了大多数与动画队列相关的问题(这听起来像,但不是 100% 确定) -
@blgt,它在 .animate() 之前与 .stop() 配合使用效果很好。将其发布为答案,我会将其标记为正确答案。谢谢
标签: jquery html css twitter-bootstrap jquery-animate