CSS3 には、3D 効果、アニメーション、複数列など、多くの高度な機能があります。今日はCSS3を使ったアニメーションの書き方を記録する記事を書きます。
前もって醜いことを言わなければなりませんが、IE9 以下のバージョンは CSS3 アニメーションをサポートしていません (どうしても実装したい場合は、js の使用を検討できますが、効果はあまり良くありません)。 Chrome と Safafi では、古いバージョンとの上位互換性を確保するために、接頭辞 -webkit- を追加することをお勧めします。
今日はシンプルにアニメーションを作ります。
まず、単純に div を描画し、背景画像を追加します。
<body> <div class="demo"> 我是demo </div></body>
右に示すように通常の DIV が表示されます:
それからそれを動かします
まず、この絵がどのように動くかを記述するメソッドを書きます
.demo{ width: 120px; height: 120px; margin: 100px auto; background: url(img/demo.jpg) no-repeat; }
この anime_run はこのメソッドの名前です。後で、名前を関連する要素に関連付ける必要があります。
from はアニメーションの開始状態を表し、to はアニメーションの終了状態を表します。
つまり、この方法は要素を時計回りに 360 度回転させるというもので、非常に簡単です。
from to では日々の開発ニーズを満たせない場合が多いので、このような書き方もあります
@keyframes run_animation{ from { transform: rotatez(0deg); } to { transform: rotatez(360deg); } }
この記述により、アニメーションのアクションがより豊かでクールになります。各段階での要素のダイナミクスはパーセンテージで表されます。0% は上記のとおりであり、100% は上記のとおりです。実際、これはとても簡単ですよね~
アニメーションはとても書きやすいです。次に、アニメーションを画像にアタッチします。
@keyframes run_animation{ 0%{<br> transform:rotatex(0deg);<br> } 16%{ transform: rotatey(-90deg); } 33%{ transform: rotatey(-90deg) rotatez(135deg); } 50%{ transform: rotatey(225deg) rotatez(135deg); } 66%{ transform: rotatey(135deg) rotatex(135deg); } 83%{ transform: rotatex(135deg); }<br> 100%{<br> transform: rotatex(0deg);<br> } }
このような簡単なコードで、定義したメソッドに従って画像を動かすことができます。
アニメーションが動かない場合は、次のいずれかの理由が考えられます:
.demo{ width: 120px; height: 120px; margin: 100px auto; animation: run_animation 12s linear infinite; /*关联动画名称,定义动画时长,动画播放速度曲线,播放次数*/ background: url(img/demo.jpg) no-repeat 100%; }