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

同逻辑不同命名的CSS关键帧动画在同结构滑块仅一个生效问题

解决方案

首先排查语法问题:你定义关键帧时结尾的};多了一个分号,这属于CSS语法错误,可能导致第二个关键帧无法被正确解析。正确的关键帧定义应该去掉最后的分号:

@keyframes rightToLeftScrollSlider1 {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-100px*9.5)); /*multiplier may change in future!*/
    }
}

不过更优的方案是使用CSS自定义属性(变量),既能避免重复定义关键帧,又能方便后续修改乘数:

  1. 定义通用的关键帧,用变量代替固定乘数:
@keyframes rightToLeftScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-100px * var(--slider-multiplier)));
    }
}
  1. 给两个滑块分别设置变量值(当前均为9.5,未来修改时直接调整对应滑块的变量即可):
.slider-1 {
    --slider-multiplier: 9.5;
    animation: rightToLeftScroll 20s linear infinite; /* 替换为你实际的动画时长和时间函数 */
}

.slider-2 {
    --slider-multiplier: 9.5;
    animation: rightToLeftScroll 20s linear infinite;
}

这个方案的优势:

  • 仅需维护一个关键帧,避免重复代码和语法错误
  • 未来某滑块logo数量变化时,只需修改对应滑块的--slider-multiplier变量值,无需改动关键帧
  • 统一动画逻辑,不会出现解析不一致的问题

另外需确保两个滑块的基础样式(如overflow: hidden、内部容器宽度设置等)完全符合教程要求,若内部容器宽度不足以容纳重复的logo列表(教程通常会复制一份logo实现无缝滚动),也可能导致动画看似静止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:20:28