本文介绍一
种简洁、高效且兼容性更好的方式——使用 css `@keyframes` 动画替代 javascript 定时器,实现元素背景色在红色与白色之间的规律闪烁。
直接通过 JavaScript 实现背景色“闪烁”看似直观,但原代码中存在多个关键问题:
✅ 推荐方案:纯 CSS 动画——语义清晰、性能卓越、无需 JS 干预,且天然支持硬件加速。
.bad {
padding: 30px;
background-color: white; /* 初始背景色 */
animation: blink 300ms infinite; /* 每300ms完整循环一次 */
}
@keyframes blink {
0%, 49.9% {
background-color: white;
}
50%, 99.9% {
background-color: red;
}
}I'm very bad
? 提示:动画周期为 300ms,其中 0%–49.9% 显示白色,50%–99.9% 显示红色,实现接近 1:1 占空比的稳定闪烁。若需更慢/更快节奏,仅需调整 animation-duration 值(如 600ms 或 150ms)。
综上,CSS 动画是实现视觉闪烁效果的最佳实践——简洁、可靠、高性能,也更符合现代前端开发的分离原则。