ユーザーが最初にボタンをクリックするとき、ループアニメーション化される前にdivに3秒のタイムアウトを設定したいと思います。
その後、ユーザーがその3秒間にもう一度クリックした場合、タイムアウトをクリアしてアニメーションを停止したいと思います。
これまでのところ、タイムアウトを正常に機能させることはできますが、タイムアウトをクリアしてアニメーションを停止させることはできません。
HTML:
<a href="#" class="button">Button</a>
<div class="block"></div>
CSS:
div.block {
position: absolute;
display: block;
height: 100px;
width: 100px;
top: -10px;
left: 50%;
background-color: red; }
jQuery:
$('a.button').toggle(function(){
var blockTimer;
blockTimer = setTimeout(function block(){
$("div.block").animate({top: '400px'}, 4000, 'linear', function() { $(this).css('top', '-10px'); block(); });
},3000);
}, function(){
clearTimeout(rainTimer);
$('div.block').clearQueue().stop().fadeOut(500, function() { $(this).css('top', '-10px').show(); });
});