Chrome は問題ありませんが、Firefox (v17 で試行) で遭遇した CSS3 ネイティブ アニメーションには問題があります。
サンプルは Codepen でも入手できます: http://codepen.io/anon/pen/yxteC
コードも以下に複製されます。
いくつかのクラスをいくつかの要素に適用します(ホバリング時にJSで適用しようとしましたが、ホバリング自体はまったく同じように機能します(クラス:hoverではなくセレクター.hover))。したがって、問題は、Firefox ではアニメーションが 1 回だけトリガーされることです。つまり、クラスが最初に適用されたときです。次回はそうではありません。
それはChromeで完全に機能します。ただし、他のブラウザーはテストしていません (IE はまだそれを広くサポートしておらず、Opera ... まあ、今のところあまり気にしません)。
もう 1 つの詳細: 内部要素 ( display:none/ block) を非表示/表示しない場合、Firefox で問題なく動作します (ただし、これは明らかに解決策ではありません)。
一般的な清潔さとコードの可能な改善に関連するコメントを追加しないでください。これはほんの一例です。
HTML:
<div>
  <span>menu</span>
  <ul>
    <li>Item1</li>
    <li>Item2</li>
    <li>Item3</li>
  </ul>
</div>
CSS:
ul
{
    display: none;
}
div.hover ul
{
    display: block;
}
div li
{
    position: relative;
    top: -10px;
}
div.hover li
{
    -webkit-animation: filterAppear 0.5s;
       -moz-animation: filterAppear 0.5s;
    top: 0;
    opacity: 1;
    -webkit-animation: filterItemAppear 0.1s;
       -moz-animation: filterItemAppear 0.1s;
    -webkit-animation-fill-mode: backwards;
       -moz-animation-fill-mode: backwards;
}
div.hover li:nth-child(1)
{
    -webkit-animation-delay: 0.15s;
       -moz-animation-delay: 0.15s;
}
div.hover li:nth-child(2)
{
    -webkit-animation-delay: 0.35s;
       -moz-animation-delay: 0.35s;
}
div.hover li:nth-child(3)
{
    -webkit-animation-delay: 0.55s;
       -moz-animation-delay: 0.55s;
}
@-webkit-keyframes filterItemAppear
{
    from { opacity:0; top:-25px; }
    to { opacity:1; top:0; }
}
@-moz-keyframes filterItemAppear
{
    from { opacity:0; top:-25px; }
    to { opacity:1; top:0; }
}