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

如何在CSS关键帧百分比间设置延迟,实现图片1秒切换间隔?

实现图片1秒间隔切换的CSS关键帧调整方案

你的核心需求是让每张图片停留1秒后切换,关键在于把动画时长和关键帧的百分比区间对应起来,确保每个图片占据相等的时长区间。

问题分析

原代码的动画时长是3秒,但关键帧只在0%、50%、100%三个点切换图片,导致第一张图显示1.5秒,第二张图显示1.5秒,第三张图刚出现就立刻切回第一张,完全没有停留时间,不符合需求。

修改后的代码

.imgWrapper{
    background-size: contain;
    background-repeat: no-repeat;
    cursor: pointer;
    /* background-image默认不支持过渡,若无需其他过渡效果可删除此行 */
    /* transition: 500ms; */
    /* 总时长3秒 = 3张图 × 1秒/张,linear保证匀速循环,infinite实现无限播放 */
    animation: imgChanger 3s linear infinite;
    width: 500px;
    height: 300px;
}
@keyframes imgChanger {
    /* 0% - 33.33%:显示第一张图,持续1秒 */
    0%, 33.33%{
        background-image: url(Images/superblog/superblog1.png);
    }
    /* 33.33% - 66.66%:显示第二张图,持续1秒 */
    33.33%, 66.66%{
        background-image: url(Images/superblog/superblog2.png);
    }
    /* 66.66% - 100%:显示第三张图,持续1秒 */
    66.66%, 100%{
        background-image: url(Images/superblog/superblog3.png);
    }
}

关键说明

  • 总动画时长设为3秒,刚好匹配3张图各1秒的停留需求。
  • 用区间百分比定义每个图片的显示时段:每个区间占总时长的1/3(≈33.33%),确保每张图在对应区间内保持显示,到区间结束点完成切换。
  • 若需要平滑过渡效果,单纯background-image切换无法实现(CSS默认不支持背景图片渐变过渡),可考虑多层div叠加+opacity过渡的方案,但此方案超出当前需求范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:47:40