javascript で webkit アニメーションを生成できるかどうか疑問に思っていました。基本的に必要なのは、要素Aをクリックすると、要素Bが毎回ランダムなパラメーターでアニメーション化されることだけです(これが、事前に固定されたCSSを使用できない理由です)。私は実際にこれらすべてを JavaScript で生成できるかどうかをテストしていますが、かなりうまくいきました。私のコードはまだランダムなことをしていませんが、javasript で正しく動作するようになると、ランダムにするのは本当に簡単です。したがって、今は要素 A をクリックするたびに要素 B をアニメーション化したいと考えています。私のコードは次のようになります。
$("#elementA").live('touchstart mousedown',function() {
$("head style").remove();
var cssAnimation = document.createElement('style');
cssAnimation.type = 'text/css';
var rules = document.createTextNode('@-webkit-keyframes random_spin {'+
'from { -webkit-transform: rotate(0deg); }'+
'to { -webkit-transform: rotate(1440deg); }'+
'}');
cssAnimation.appendChild(rules);
document.getElementsByTagName("head")[0].appendChild(cssAnimation);
$("#elementB").removeClass("random_spin");
$("#elementB").css({'-webkit-animation-name': ''});
$("#elementB").css({'-webkit-animation-name': 'random_spin'});
$("#elementB").addClass("random_spin");
});
そこで、ヘッダーにアニメーションを追加し、それを elementB に適用しました。
私の「random_spin」クラスは、既に定義済みの CSS です。
.random_spin {
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: ease;
}
私の意図は、elementA をクリックするたびに elementB を回転させることができるようにすることです。残念ながら、一度しか実行されず、何度クリックしても、アニメーション名を何度リセットしても、一度しか実行されません。私は何を間違っていますか?