css动画如何给元素添加渐变效果_通过background-position和@keyframes制作渐变-css教程

background-position动画模拟渐变流动的本质是平移宽于容器的渐变背景;需同时设置background-size(如200% 200%)和background-position(如0% 50%),配合keyframes位移实现视觉滑动效果。

为什么 background-position 动画能模拟渐变色流动

纯 CSS 实现“渐变色动起来”的本质,不是让颜色本身变化,而是让一个足够宽的线性渐变背景在固定尺寸容器内平移。只要 background-size 宽度大于容器宽度(比如 200%),再用 @keyframes 控制 background-position 从 0% 0% 到 100% 0% 连续移动,视觉上就会出现颜色滑过的效果。

关键点在于:必须同时设置 background-size 和 background-position,否则位移无效或无感。

  • 推荐用 background-size: 200% 200%(双方向留余量,兼容斜向渐变)
  • 动画起始位置建议写成 background-position: 0% 50%,避免水平移动时顶部/底部露白
  • 容器需设 background-clip: border-box(默认值,但显式声明更稳妥)

最简可用代码结构(含 vendor 兼容)

下面这段可以直接复制进项目,已包含 -webkit- 前缀和合理缓动:

.gradient-move {
  background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #44b5b1, #ff6b6b);
  background-size: 200% 200%;
  background-position: 0% 50%;
  animation: gradientShift 4s ease-in-out infinite;
}

@keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

/ 兼容 Safari / iOS / @-webkit-keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

.gradient-move { -webkit-animation: gradientShift 4s ease-in-out infinite; }

注意:不要只加 -webkit- 前缀到 @keyframes,animation 属性本身也要带前缀才生效。

立即学习“前端免费学习笔记(深入)”;

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » css动画如何给元素添加渐变效果_通过background-position和@keyframes制作渐变-css教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008711+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008711+
  • 本周更新: 0+
  • 最后更新: 2026-03-16