0

ページロード時に div (下向き矢印) を脈動させたいと思います。ユーザーが下矢印をクリックすると、別の div スライドが切り替わり、パルス アニメーションが停止します。下向き矢印をもう一度クリックすると、他の div が上にスライドし、下向き矢印が再び脈動し始めます。

これは同様のアイデアですが、パルスが停止するだけです:

jQuery(".pulse").effect("pulsate", { times:1000 }, 2000).click(function(){
    jQuery(this).stop(true, true);
});
4

1 に答える 1

0

私が理解しているように、.effect()メソッドはアニメーションを無期限に続行しないため、おそらく完全なコールバックとしても提供される関数内からアニメーションをトリガーすることにより、終了するたびに呼び出し続ける必要があります。

他のdivが表示されている間にそれを停止し、後で再起動する場合は、フラグを使用して、どちらの方法で切り替えるかを決定できます。おそらく次のようになります。

function keepPulsing() {
    $pulse.effect("pulsate", 500, keepPulsing);
}
var pulsing = true,
    $pulse = jQuery(".pulse").click(function(){
        if (pulsing) {
            jQuery(".other").slideDown();
            jQuery(this).stop(true, true).css("opacity",1);
        } else {
            jQuery(".other").slideUp();
            keepPulsing();
        }
        pulsing = !pulsing;        
    });
keepPulsing();

デモ: http://jsfiddle.net/87hy2/

于 2013-10-26T09:13:53.263 に答える