本文介绍一种简洁、高效且兼容性好的方式,通过 css `@keyframes` 动画替代 javascript 定时器,实现元素背景色在红色与白色之间规律闪烁,避免原代码中因 dom 获取错误、异步逻辑混乱和性能问题导致的失效。
原 JavaScript 实现存在多个关键问题:
✅ 推荐方案:纯 CSS 动画(更稳定、更轻量、自动硬件加速)
.bad {
padding: 30px;
animation: blink 300ms infinite;
}
@keyframes blink {
0%, 49.9% {
background-color: white;
}
50%, 99.9% {
background-color: red;
}
}对应 HTML(注意类名小写,符合常规命名规范):
I'm very bad
? 关键细节说明:
立即学习“前端免费学习笔记(深入)”;
const el = document.querySelector('.bad');
el.style.animationPlayState = 'paused'; // 暂停
el.style.animationPlayState = 'running'; // 恢复⚠️ 注意事项:
能影响性能;如需批量控制,建议用 CSS Custom Properties + :root 变量统一管理; 综上,CSS 动画是实现背景色规律闪烁的首选方案——声明式、高性能、易维护,且天然规避了 DOM 操作与定时器管理的诸多陷阱。