You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS动画保留原始属性:如何无需指定原背景色实现过渡?

当然可以实现!

你只需要对现有的动画代码做一个小调整,就能让动画自动过渡到元素自身的原始背景色,不用硬编码任何预设的背景值,完美实现复用。

核心思路

CSS动画的to(或100%)关键帧如果不指定具体样式,浏览器会自动使用元素应用动画前的原始样式作为动画的结束状态。利用这个特性,我们只需要保留动画起始的高亮色,去掉结束时的固定背景色定义即可。

修改后的完整代码

@high-light-white: #ffffff; 
@high-light-yellow: #ede5d0; 
@high-light-default: #dce1ea; 
@high-light-duration: 10s; 

.highlight-comment { 
  -webkit-animation-name: highlight; /* Safari 4.0 - 8.0 */ 
  -webkit-animation-duration: @high-light-duration; /* Safari 4.0 - 8.0 */ 
  animation-name: highlight; 
  animation-duration: @high-light-duration; 
} 

@keyframes highlight { 
  from { background-color: @high-light-yellow; } 
  /* 移除硬编码的to状态,让浏览器自动使用元素原始背景色作为结束状态 */
}

为什么这样有效?

当你只定义from(即0%进度)的关键帧时,浏览器会自动将元素在应用动画前的background-color值作为to(即100%进度)的状态。不管你把这个类应用到背景色为白色、浅灰还是其他颜色的元素上,动画都会平滑地从黄色过渡到元素自身的原始背景色,完全无需额外配置。

额外提示

如果希望动画结束后保持结束状态(而不是立刻跳回原始样式),可以给.highlight-comment添加animation-fill-mode: forwards,但根据你的需求,默认的animation-fill-mode: none就足够让元素回到原始背景色了。

内容的提问来源于stack exchange,提问作者Felipe Wagner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:05:13