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

仅用CSS实现延迟动画:如何让单词轮换动画在每个单词处暂停

实现单词轮换动画每帧停留的方案

你当前的动画是全程匀速切换位移,没有静止区间,所以无法实现每个单词的停留效果。只需要调整@keyframes的关键帧节点,让相同位移的状态在连续的百分比区间保持,就能实现停留,不需要额外的JS或者复杂属性。

修改后的CSS代码如下,HTML部分完全不需要改动:

.im {
  float: left;
  margin-right: 0.3em;
}

.im-wrapper {
  display: flex;
  height: 1.1em;
}

.im-items {
  overflow: hidden;
}

.im-item {
  display: block;
  height: 100%;
  color: $primary;
  /* 总时长可按需调整,数值越大整体动画越慢 */
  animation: move 10s infinite;
  white-space: nowrap;
}

@keyframes move {
  /* 第一个单词Father停留阶段 */
  0%, 16% {
    transform: translateY(0%);
  }
  /* 切换到第二个单词Mother,切换动画耗时占总时长4% */
  20% {
    transform: translateY(-100%);
  }
  /* 第二个单词Mother停留阶段 */
  20%, 36% {
    transform: translateY(-100%);
  }
  /* 切换到第三个单词Brother */
  40% {
    transform: translateY(-200%);
  }
  /* 第三个单词Brother停留阶段 */
  40%, 56% {
    transform: translateY(-200%);
  }
  /* 切换到第四个单词Sister */
  60% {
    transform: translateY(-300%);
  }
  /* 第四个单词Sister停留阶段 */
  60%,76% {
    transform: translateY(-300%);
  }
  /* 切换到第五个单词Grandma */
  80% {
    transform: translateY(-400%);
  }
  /* 第五个单词Grandma停留阶段 */
  80%,96% {
    transform: translateY(-400%);
  }
  /* 无缝切回第一个单词,完成循环 */
  100% {
    transform: translateY(0%);
  }
}

参数调整说明

  • 总时长:animation: move 10s infinite中的10s可以任意修改,所有阶段的占比会自动适配总时长
  • 停留/切换速度:当前配置每个单词停留占总时长16%,切换动画占4%。如果需要更长停留,可把停留区间的百分比调大、切换区间的百分比差调小,比如把16%改成18%,切换的关键帧改成18%→20%,切换动画就会更快,停留时间更长
  • 适配不同数量的单词:如果轮换单词数量变更,只要对应增减关键帧,N个单词的最大位移为-(N-1)*100%即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:15:03