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

如何实现依次弹跳的省略号CSS动画效果?

实现依次弹跳的省略号动画

你当前代码的问题是所有圆点共享相同的动画且无延迟,导致同步脉冲。要实现依次弹跳的效果,只需给每个圆点添加动画延迟,并调整关键帧让每个圆点在周期内仅完成一次弹跳动作。

修改后的完整代码

.ellipsis {
    display: flex;
}
.ellipsis div {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #000;
    margin: 0 5px;
    animation: bounce 1.2s linear infinite;
    opacity: 0.2;
    transform: scale(0.8);
}
/* 错开第二个圆点的动画启动时间 */
.ellipsis div:nth-child(2) {
    animation-delay: 0.4s;
}
/* 错开第三个圆点的动画启动时间 */
.ellipsis div:nth-child(3) {
    animation-delay: 0.8s;
}

@keyframes bounce {
    /* 1/6周期时达到最大状态 */
    16.67% {
        opacity: 1;
        transform: scale(1);
    }
    /* 1/3周期时回到初始状态 */
    33.33% {
        opacity: 0.2;
        transform: scale(0.8);
    }
    /* 剩余时间保持初始状态,等待下一轮循环 */
}
<div class="ellipsis">
    <div></div>
    <div></div>
    <div></div>
</div>

核心逻辑说明

  • 动画时长与延迟匹配:总动画时长设为1.2s,每个圆点的延迟依次增加0.4s(总时长的1/3),确保三个圆点刚好在一个周期内依次完成弹跳,循环时无缝衔接。
  • 简化关键帧:每个圆点仅在动画前1/3周期完成「放大显示→缩小恢复」的动作,剩余时间保持初始状态,避免重复触发动画导致同步问题。
  • 初始状态固化:直接在元素样式中定义初始的半透明缩小状态,无需在关键帧的0%和100%重复声明,代码更简洁。

内容的提问来源于stack exchange,提问作者D. Thaler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:23:31