Как привязать / открепить клик, чтобы предотвратить хаос в очереди анимации? - PullRequest
0 голосов
/ 01 декабря 2011

Этот не сработает. Очередь анимации заканчивается хаосом. Что я не прав? Помогите пожалуйста.

$button.bind('click',showHideFavourites);

function showHideFavourites() {
    if ($favContent.css('opacity') == 1) { 
        hideFavourites(); 
    } else { 
        showFavourites(); 
    }
}

function hideFavourites() { 
    $button.unbind('click');

    $favContent.animate({'opacity':'0'},250,function() { 
        $favourites.animate({'height':0},{queue:false,duration:250,easing:'easeInOutQuad',complete:function() {
            $button.text(showFav);

            $button.bind('click',showFavourites);
        }});
    });
}

function showFavourites() {
    $button.unbind('click');

    $favourites.animate({'height':fl_openHeight},{queue:false,duration:250,easing:'easeInOutQuad',complete:function() {
        $favContent.animate({'opacity':'1'},250);
        $button.text(hideFav);

        $button.bind('click',hideFavourites);   
        });
    }});
}

1 Ответ

1 голос
/ 01 декабря 2011
$button.on('click', function() {
    $favContent.css('opacity') == 1) ? hideFavourites() : showFavourites(); 
});

function hideFavourites() { 
    $favContent.stop(true, true).animate({'opacity':'0'},250,function() { 
        $favourites.stop(true, true).animate({'height':0}, 250, 'easeInOutQuad', function() {
            $button.text(showFav);
        });
    });
}

function showFavourites() {
    $favourites.stop(true, true).animate({'height':fl_openHeight}, 250 'easeInOutQuad' function() {
        $button.text(hideFav);
        $favContent.stop(true, true).animate({'opacity':'1'},250);
     });
}

Если вы пытаетесь одновременно анимировать высоту и непрозрачность, вы также должны отбросить функции сцепления, я не сделал этого, так как не был уверен, для чего предназначен запрос?

...