動的キーフレーム値: CSS での JavaScript 変数の使用
質問:
どうすればよいですかJavaScript を使用して Webkit キーフレーム アニメーションの回転値を動的に設定する変数?
答え:
CSS では、JavaScript 変数をキーフレーム アニメーションに直接挿入できません。これを実現するには、JavaScript で CSS ルールを作成し、CSS オブジェクト モデル (CSSOM) に挿入する必要があります。
次のサンプル コードを検討してください。
@-webkit-keyframes rotate { 0% {-webkit-transform: rotate(-10deg);} 100% {-webkit-transform: rotate(10deg);} } #dog{ /*irrelevant settings*/ -webkit-animation: rotate 5s infinite alternate ease-in-out; }
回転値を指定するには、JavaScript 関数を記述できます。
// Assume var dogValue = "20deg"; var styleElement = document.createElement('style'); styleElement.type = 'text/css'; var keyframesRule = `@-webkit-keyframes rotate { 0% {-webkit-transform: rotate(-${dogValue});} 100% {-webkit-transform: rotate(${dogValue});} }`; styleElement.appendChild(document.createTextNode(keyframesRule)); document.head.appendChild(styleElement);
このコードは、新しい