Animação CSS pausando quando o elemento está oculto

Estou trabalhando na adição de animações clique / toque nos botões de um projeto em que estou trabalhando, e me deparei com um problema frustrante em relação à animação de botões que mostram e ocultam elementos.

O projeto é um aplicativo da web móvel de página única com vários botões. Estou usando o jQuery para definir uma animação de quadro-chave css em um botão quando ele é pressionado. O botão oculta a página atual e mostra uma nova. O problema é que, quando clico no botão, a página é alterada antes que a animação seja concluída e a animação é pausada enquanto o recipiente está oculto. Quando o contêiner é mostrado novamente, a animação continua de onde estava oculta e, em seguida, o evento webkitAnimationEnd é acionado.

Os contêineres são mostrados e ocultados com:

display: none;

Eu não posso mudar isso para:

visibility: hidden;

porque o contêiner ainda ocupará espaço. Há alguma maneira simples de forçar a remoção da animação quando o elemento se torna invisível ou forçar a animação a continuar quando o container está oculto?

Edit: Para esclarecimento, esta é a animação de quadro-chave que estou aplicando no javscript:

@-webkit-keyframes shrink
{
    0%
    {
        -webkit-transform: matrix(1, 0, 0, 1, 0, 0);
    }
    50%
    {
        -webkit-transform: matrix(0.95, 0, 0, 0.95, 0, 0);
    }
    100%
    {
        -webkit-transform: matrix(1, 0, 0, 1, 0, 0);
    }
}

E este é o javascript que tenho para aplicar a animação ao elemento:

$('body').on(_context.settings.platformInfo.device.touch ? 'touchstart' : 'mousedown', '.shrink', function ()
{
    var $item = $(this);

    $item.one('webkitAnimationEnd', function ()
    {
        $item.css({ '-webkit-animation': 'none' });
    }).css({ '-webkit-animation': 'shrink 250ms forwards' });
});

questionAnswers(5)

yourAnswerToTheQuestion