css3 の強力な機能を使用すると、複雑な JavaScript をスキップして、回転アニメーションの作成を直接完了できます。
HTML コードは次のとおりです:demo01.html
<!DCTYPE html> <head> <meta type="utf-8"/> <title>旋转动画</title> <link rel="stylesheet" type="text/css" href="demo01.css"> </head> <body> <div class="container"> <div id="around"> <figure>1<figure> <figure>2<figure> <figure>3<figure> <figure>4<figure> <figure>5<figure> <figure>6<figure> <figure>7<figure> <figure>8<figure> <figure>9<figure> </div> </div> </body> </html> css代码如下:demo01.css .container{ width:210px; height:140px; position:relative; //3d视距,当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身 perspective:1000px; margin:50px auto 40px; } #around{ width:100%; height:100%; //规定如何在 3D 空间中呈现被嵌套的元素 transform-style:preserve-3d; position:absolute; //定义动画 animation:myMove 10s infinite; } #around figure{ display:block; position:relative; width:186px; height:116px; left:10px; top:10px; border:2px solid black; text-align:center; color:white; font-weight:bold; //与高度相等,使内容垂直居中显示 line-height:116px; } #around figure:nth-child(1){ transform: rotateY(0deg) translateZ(288px); background-color:red; } #around figure:nth-child(2){ transform: rotateY(40deg) translateZ(288px); background-color:orange; } #around figure:nth-child(3){ transform: rotateY(80deg) translateZ(288px); background-color:yellow; } #around figure:nth-child(4){ transform: rotateY(120deg) translateZ(288px); background-color:green; } #around figure:nth-child(5){ transform: rotateY(160deg) translateZ(288px); background-color:darkgreen; } #around figure:nth-child(6){ transform: rotateY(200deg) translateZ(288px); background-color:blue; } #around figure:nth-child(7){ transform: rotateY(240deg) translateZ(288px); background-color:purple; } #around figure:nth-child(8){ transform: rotateY(280deg) translateZ(288px); background-color:navy; } #around figure:nth-child(9){ transform: rotateY(320deg) translateZ(288px); background-color:pink; } #keyframes myMove{ from{ transform: rotateY(360deg); } to{ transform: rotateY(0deg); }}
完成したアイコンは次のとおりです:
写真を自動的に回転できます。アニメーション属性の値を変更すると、無限ループ (infinite) と複数のループ (ease n) を実現できます。
例: anime:myMove 10s easy 2. myMove はアニメーション関数で、10s はアニメーション関数です。アニメーションが完了するまでに時間がかかります。