Pourquoi est-transition css ne fonctionne pas lors de l'ajout de la classe à l'aide de javascript / jQuery?

J'ai une boîte de message qui je veux glisser vers le bas sur cliquez sur. Je fais cela par l'ajout d'une classe css à travers Angulaire (et jQuery dans mon exemple). Mais mon CSS transition ne prend pas effet.

Est là de toute évidence une erreur, je suis en train de faire?

Voici mon violon: http://jsfiddle.net/mBKXn/

et mon code:

//jQuery
$('.test').on('click',function(){
  $('#msgContainer').toggleClass('msgShow');
});

//HTML
<div class="container">
    <div id="msgContainer" class="msg">
        <p>Message here</p>
        <p>T2</p>
        <p>T4</p>
    </div>
    Test text
</div>

<button class="test">Click</button>

//CSS
.container{
    position: relative;
    height: 200px;
    width: 400px;
    border: solid 1px #222;
}

.msg{
    position: absolute;
    top: 0;
    background-color: #FEEFB3;
    height: 0;
    width: 100%;
    overflow: hidden;
    -webkit-transition: height 0.8s linear;
    -moz-transition: height 0.8s linear;
    -o-transition: height 0.8s linear;
    -ms-transition: height 0.8s linear;
    transition: height 0.8s linear;    
}

.msgShow{
    height: auto;
}

OriginalL'auteur Steven | 2014-01-15