基础转圈动画需两步:先用@keyframes定义从rotate(0deg)到rotate(360deg)的关键帧,再用animation: spin 0.8s linear infinite绑定;避免触发布局属性、确保GPU加速、注意优先级与渲染条件。
怎么用
写一个基础转圈动画
核心就两步:定义旋转关键帧,再用
绑定到元素上。别写成 0% → 100% 都设
,那样浏览器不会动——得从
到
才有变化。
必须带名字,且名字要和
完全一致(区分大小写)
推荐写
/
,语义清晰,也避免漏写百分比符号
别在
里写
或
这类触发布局的属性,容易卡顿
的四个常用参数怎么配才不翻车
光写
很容易转一半停住、方向反了、或者点一下才动一次。真正控制行为的是后面几个隐式参数。
(比如
)必须设,否则默认是
,等于没动
不写就是
,要循环得显式写
推荐用
,不然默认
会让转圈“先快后慢”,看起来像卡顿
默认
,如果写了
又没配
,第二轮就会反转然后停住
为什么加了
却不转?常见失效场景
不是代码写错,而是 CSS 优先级、渲染条件或硬件加速没跟上。尤其在移动端或低配设备上,不触发 GPU 加速时,
动画可能被降级为软件渲染,帧率掉到 10fps 以下,肉眼就“不动”。
父容器设了
且子元素超出,可能裁掉动画区域(检查元素是否真被渲染出来)
用了
的普通块级元素,但没设宽高或
/
,结果 DOM 存在但尺寸为 0 —— 转了个寂寞
Chrome 旧版对
+
组合敏感,加
可能反而卡死,不如直接加
强制 GPU 加速
纯 CSS 转圈,
法比
法更轻量吗?
看场景。如果只要一个简单圆圈,
+
确实够用;但想调颜色渐变、控制某一段空缺(比如进度感)、或适配深色模式自动换色,
就硬编码死了。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
方案依赖
边框 + 实色边框模拟,
无法单独驱动某条边,只能整圈转
的
或
可以用
做“擦除式”加载,视觉更现代,但多了一层 DOM 结构
性能上差别不大,但
法在 Safari iOS 15 之前有闪烁 bug,
更稳
真正省事的点不在体积,而在维护性:改一圈颜色,
改一次;改一圈渐变,就得切到
里调
。
@keyframesanimationtransform: rotate(360deg)rotate(0deg)rotate(360deg)@keyframes spinanimation-namefromto@keyframesdisplaywidth@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}animationanimation: spin 1sanimation-duration1s0sanimation-iteration-count1infiniteanimation-timing-functionlineareaseanimation-directionnormalalternateinfinite.loader {
animation: spin 0.8s linear infinite;
}animationtransformoverflow: hiddenposition: staticbordercontenttransformwill-changewill-change: transformtransform: translateZ(0)bordersvgborderborder-radius: 50%borderbordertransparentanimationsvgstroke-dasharraybordersvgborder-colorsvg