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

使用linear-gradient与-webkit-mask-image做CSS文本动画后如何保持全显

文本渐显动画结束后保持全显的实现方案

要实现动画结束后保持文本完全显示的状态,核心修改点是给动画配置animation-fill-mode: forwards属性。

具体操作

在你绑定渐显动画的元素CSS规则中,修改动画声明,追加forwards参数即可:

/* 原代码示例(你原本的写法) */
.target-text {
  animation: textReveal 2s;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
  -webkit-mask-size: 400% 100%;
}

@keyframes textReveal {
  0% {
    -webkit-mask-position: 100% 0;
  }
  100% {
    -webkit-mask-position: 0 0;
  }
}
/* 修改后的代码 */
.target-text {
  /* 追加forwards,指定动画结束后停留在最后一帧 */
  animation: textReveal 2s forwards;
  /* 其余原有属性保持不变 */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
  -webkit-mask-size: 400% 100%;
}

原理说明

  • CSS动画默认执行完毕后会重置到元素初始样式,这就是动画结束后文本无法保持显示的原因
  • animation-fill-mode: forwards的作用就是让动画执行完成后,永久保留最后一帧的样式状态,你的动画最后一帧正好是渐变完全覆盖文本的全显状态,因此设置后就会一直保持文本可见。

兼容提示

如果需要适配老旧webkit内核浏览器,可以补充前缀写法:

.target-text {
  -webkit-animation: textReveal 2s forwards;
  animation: textReveal 2s forwards;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:15:02