整个问题是我有一个固定的标题,并且我需要相应地移动它下面的div。虽然有一个问题,如果我真的快速点击3或4次,其中一个动画混乱,我最终得到了'' div里面的内容。我在动画和滑动之前使用停止。我尝试使用队列等......无济于事。
$(".header").click(function () {
$header = $(this);
$content = $header.next();
$content.stop().slideToggle(500, function () {
if(($('.lol').css('margin-top')) == '47px')
{
$(".under").stop().animate({'margin-top': "100px"}, 500)
}
else
{
$(".under").stop().animate({'margin-top': "47px"}, 500)
}
});
});
https://jsfiddle.net/zddzvxLy/8/
这里有一个显示问题的方法。尝试快速点击标题几次'这个必须在"将出现在CONTENT内。
答案 0 :(得分:1)
首先,您没有关于课程.lol
的项目 - 将其更改为.under
其次,将stop()
来电更改为stop(true, true)
第三,我会从.under
函数中调出completed
的动画调用,并将其与第一个动画并行调用。
答案 1 :(得分:0)
当元素已经被动画化时,避免调用animate()
:
if ($('.content').is(':animated') === false)
{
// animate
}
else
{
return false;
}