使用CSS3的@keyframes定义旋转动画并绑定到元素,通过animation属性设置时长、速度和循环次数,即可实现无需JavaScript的网页元素旋转效果。

想让元素在网页中旋转起来,HTML5结合CSS3的关键帧动画(@keyframes)是最常用的方法。不需要JavaScript也能实现流畅的旋转效果,下面直接讲清楚怎么写。
用@keyframes定义旋转动画
通过@keyframes规则可以定义动画每一阶段的状态。比如让一个盒子从0度转到360度:
@keyframes rotateCircle {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
也可以写成百分比形式,控制更精细:
立即学习“前端免费学习笔记(深入)”;
@keyframes rotateCircle {
0% { transform: rotate(0deg); }
50% { transform: rotate(180deg); }
100% { transform: rotate(360deg); }
}
把动画应用到元素上
定义好关键帧后,用animation属性将它绑定到具体元素。例如一个圆形div:
.circle {
width: 100px;
height: 100px;
background: #3498db;
border-radius: 50%;
animation: rotateCircle 2s linear infinite;
}
其中animation的参数说明:
- rotateCircle:动画名称
- 2s:持续2秒
- linear:匀速转动
- infinite:无限循环
支持更多旋转效果
你可以调整transform属性实现不同旋转方式:
- rotateX(360deg):沿X轴翻转(上下翻)
- rotateY(360deg):沿Y轴翻转(左右翻)
- rotateZ(360deg):平面内旋转(等同于rotate)
- rotate3d(1, 1, 0, 360deg):3D空间旋转
如果要用3D旋转,记得给父容器加perspective,否则看不出立体感:
.container {
perspective: 1000px;
}
基本上就这些。定义关键帧、绑定动画、设置时长和循环,就能让元素转起来。不复杂但容易忽略细节,比如忘了加transform-origin或没设无限循环。多试几次就熟练了。











