そんなわけで、CSS3のアニメーションを実装するために色々と検証してみる。
前回は
//パターン1 #box1 { -webkit-transition-propaty: all; -webkit-transition-duration: 1s; -webkit-transition-timing-function: ease-in-out; }
といった感じに紹介しましたが、この書き方よりも
//パターン2 #box1 { -webkit-transition: all 1s ease-in-out; }
という書き方にしておいた方がよさそうです。
というのも、JavaScriptで-webkit-transitionの値を書き換えようとする際にちゃんと動作したのは
-webkit-transition-timing-function
しかちゃんと動作せず、
-webkit-transition-propaty
-webkit-transition-duration
を値を書き換えても無視されます。
たとえば
document.getElementById("box1").style.webkitTransitiondPropaty = "none"; document.getElementById("box1").style.webkitTransitiondDuration = "5s"; //$("#box1").css({webkitTransitiondDuration:"5s"});
とかは反応しませんでした。
document.getElementById("box1").style.webkitTransition = "all 5s ease-in"; //$("#box1").css({webkitTransition:"all 5s ease-in"});
こんな風にしないとだめです。もしpropatyやdurationだけ変えたい場合は
document.getElementById("box1").style.webkitTransition = "none"; document.getElementById("box1").style.webkitTransition = "5s"; //$("#box1").css({webkitTransition:"none"});
とすればいいようです。
document.getElementById("box1").style.webkitTransitionTimingFunction = "ease-out";
だけはしっかり動作します。
CSS自体はパターン1だろうがパターン2だろうがどっちでもちゃんと動作しますが、JavaScriptでは基本的に全部指定するのがベターっぽいです。
CSS3は謎が多いです。