1

私はこの jQuery 効果に取り組んできました。フィドル: http://jsfiddle.net/abtPH/26/

これまでのところ、すべてがうまくいっていますが、要素をクリックするのが速すぎると、バグが発生して奇妙な動作になるようです。時間をかけて要素をクリックすると、正常に機能します。

使ってみました:animate

ユーザーが次のアニメーションをクリックする前にアニメーションが終了するようにします。私はこのアプローチが好きではありませんが、エンド ユーザーからは効果が遅れているように見えるからです。ユーザーが要素をすばやくクリックして、目的の効果を得ることができるようにしたいと考えています。

これまでの私のjQueryは次のとおりです。

$('li').on('click', function (e) {
    e.preventDefault();
    var active = $(this).siblings('.active');
    var posTop = ($(this).position()).top;
    if (active.length > 0) {
        var activeTop = (active.position()).top;
        if (activeTop == posTop) {
            $(this).find('.outer').fadeIn('medium', function () {
                active.toggleClass('active', 400).find('.outer').fadeOut('medium');
            });

        } else {
            $(this).siblings('.active').toggleClass('active', 400).find('.outer').slideToggle();
            $(this).find('.outer').slideToggle();
        }
    } else {
        $(this).find('.outer').slideToggle();
    }
    $(this).toggleClass('active', 400);
});
$('.outer').on('click', function (e) {
    return false;
});
4

1 に答える 1