jQuery单击切换动画
我正在尝试学习如何使用jQuery,我偶然发现了一个问题。 首先,我将向您展示导致问题的代码部分。
HTML
jQuery的
$(document).ready(function(){ $("#arrow_container").toggle( function () { $("#nav").animate({marginTop:"0px"}, 200); }, function () { $("#nav").animate({marginTop:"-100px"}, 200); }); });
我希望div #nav
(最初位于屏幕外部)在单击div #arrow_container
时向下移动。 然后当再次单击#nav
时,我希望#nav
向上移动到其原始位置。
目前,没有发生这种情况。 你能告诉我问题是什么以及如何解决它吗?
编辑: 一个jsfiddle的代码,包括一些CSS
编辑2:问题似乎得到解决。 还要感谢我忘记并回答的用户名已被删除,但他有一些很棒的提示! 谢谢!
试试这个:
$("#arrow_container").click( function(event){ event.preventDefault(); if ( $(this).hasClass("isDown") ) { $("#nav").stop().animate({marginTop:"-100px"}, 200); } else { $("#nav").stop().animate({marginTop:"0px"}, 200); } $(this).toggleClass("isDown"); return false; });
http://jsfiddle.net/us6sohyg/5/
对于我不能100%工作的我,我必须在每个动画之前编辑一个stop()事件。 所以:
$("#arrow_container").click( function(event){ event.preventDefault(); if ($(this).hasClass("isDown") ) { $("#nav").stop().animate({marginTop:"0px"}, 200); $(this).removeClass("isDown"); } else { $("#nav").stop().animate({marginTop:"-100px"}, 200); $(this).addClass("isDown"); } return false; });