CSS3では、transitionやanimationといったプロパティがあります。
これらを利用することで、これまでJavascriptで行っていたような要素のアニメーションを行うことが出来るようになります。
これまで、animationはwebkitエンジンのブラウザでベンダープレフィックスをつけることで動作していましたが、
Firefox5以降、animationが動作するようになりました。
そこで早速試してみたときに全く動かないトラブルがあったので、
解決法を備忘録として書き残しておきます。
その時の僕は、遂に、Firefoxでanimationが動く日が来たのかーとニヤニヤしながら、
以下のようなコードを打ち込んでいました。
@-moz-keyframes "move" { from{background-position:0 0;} to{background-position:75px 0;} } #move_element{-moz-animation:"waving" 6s linear 6s infinite; animation:"move" 6s linear 6s infinite;}
・・・あれ、全く動かない。
なぜだ…ベンダープレフィックスのwebkitをmozに置き換えただけなのに…
一括指定が悪いのかと思い、アニメーションだけしてみたりしましたが動きませんでした。
そこで、mozillaのドキュメントを直接見に行きました。
animationっと・・・ あれ...
h1 { -moz-animation-duration: 3s; -moz-animation-name: slidein; } @-moz-keyframes slidein { from { margin-left: 100%; width: 300% } to { margin-left: 0%; width: 100%; } }
keyframe nameの書き方が違う…
結論
@-moz-keyframes "move"を@-moz-keyframes move、
animation:"move"をanimation:moveにしたら動きました。
Firefoxではanimation-nameから『""』を外す、Webkit系ブラウザでは『""』をつけることで動作するようですね。