繁体   English   中英

单击另一个锚点时,jQuery动画返回到原始位置

[英]jQuery animate return back to original position when click another anchor

单击花药锚点后,我想将导航返回到原始位置。 我在下面的js编写了第一个动画,使其正常工作,但是当我单击第二个锚点以将导航返回到原始位置时,它无法工作。

 $(document).ready(function(){ $(".menu-button").click(function(){ $(".nav-bar").animate({left: '50px'}); }); $(".close-nav").click(function(){ $(".nav-bar").animate({left:'-50px;'}); }); }); 
 .menu-button { display: block; width: 50px; height: 50px; background: red; float: left; } .nav-bar { position: relative; background: rgba(0,0,0,0.5); left: -600px; } .nav-bar ul { list-style-type: none; } .nav-bar ul li { float: left; margin-left: 20px; } .nav-bar ul li a { } a.close-nav { position: relative; } 
 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#" class="menu-button open-nav"></a> <nav class="nav-bar"> <ul> <li><a href="">About Us</a></li> <li><a href="">Our Portfolio</a></li> <li><a href="">Client Testimonial</a></li> <li><a href="">Contact</a></li> <li><a href="" class="close-nav"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></li> </ul> </nav> 

您必须在事件对象上使用preventDefault()才能取消链接单击。 否则,单击关闭箭头只会再次导航到同一页面。

另外,您必须将动画重新设置为-600px (css的初始位置),而不仅仅是-50px

 $(document).ready(function(){ $(".menu-button").click(function(ev){ ev.preventDefault(); $(".nav-bar").animate({left: '50px'}); }); $(".close-nav").click(function(ev){ ev.preventDefault(); $(".nav-bar").animate({left:'-600px'}); }); }); 
 .menu-button { display: block; width: 50px; height: 50px; background: red; float: left; } .nav-bar { position: relative; background: rgba(0,0,0,0.5); left: -600px; } .nav-bar ul { list-style-type: none; } .nav-bar ul li { float: left; margin-left: 20px; } .nav-bar ul li a { } a.close-nav { position: relative; } 
 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#" class="menu-button open-nav"></a> <nav class="nav-bar"> <ul> <li><a href="">About Us</a></li> <li><a href="">Our Portfolio</a></li> <li><a href="">Client Testimonial</a></li> <li><a href="">Contact</a></li> <li><a href="" class="close-nav"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></li> </ul> </nav> 

首先,你应该preventDefaulta点击,然后你可以动画左侧-100%

 $(".menu-button").click(function() { $(".nav-bar").animate({ left: '50px' }); }); $(".close-nav").click(function(e) { e.preventDefault() $(".nav-bar").animate({ left: '-100%' }); }); 
 .menu-button { display: block; width: 50px; height: 50px; background: red; float: left; } .nav-bar { position: relative; background: rgba(0, 0, 0, 0.5); left: -600px; } .nav-bar ul { list-style-type: none; } .nav-bar ul li { float: left; margin-left: 20px; } a.close-nav { position: relative; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <a href="#" class="menu-button open-nav"></a> <nav class="nav-bar"> <ul> <li><a href="">About Us</a></li> <li><a href="">Our Portfolio</a></li> <li><a href="">Client Testimonial</a></li> <li><a href="">Contact</a></li> <li><a href="" class="close-nav"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></li> </ul> </nav> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM