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

Squarespace无限文字滚动跑马灯动画周期结束重置问题求解

跑马灯动画周期重置问题解决方案

问题核心原因

  • 跑马灯动画出现周期重置跳变,核心是@keyframes vertscroll中写死的translateX(-1400px)数值和单个重复文本块(.js-marquee-2)的实际宽度不匹配。动画每轮结束复位到初始位置时,两个重复文本块的衔接出现错位,就会产生明显的重置感。
  • 冗余布局设置:.marquee的width: 100000px属于不必要的超大宽度配置,会增加布局计算偏差的概率。

修复方案

首先通过浏览器开发者工具选中任意一个.js-marquee-2元素,查看「计算样式」中的宽度数值,假设测量得到的宽度为2800px,将CSS代码调整如下,HTML代码无需修改:

[data-section-id="60fa77839ea7dd121dbd947d"] {
  overflow: hidden;
}

body {
  overflow-x: hidden;
}

/* 未用到的vertscroll类可直接删除,保留不影响运行 */
.vertscroll {
  margin: 0 auto;
  white-space: nowrap;
  position: absolute;
  span {
    display: inline-block;
    animation: vertscroll 40s linear infinite;
    &:nth-child(2) {
      animation-delay: 5s;
    }
  }
}

.marquee {
  position: relative;
  z-index: 1;
  /* 移除固定超大宽度,改为由子元素宽度自动撑开 */
  width: max-content;
  transform: translateX(0px);
  animation: 40s linear 0s infinite normal none running vertscroll;
  a {
    font-size: 24px;
    color: #626262;
    transition: all .2s;
    &:hover {
      color: #cfc194;
    }
  }
  .js-marquee-2 {
    float: left;
  }
}

/* 此处-2800px替换为你实际测量得到的单个.js-marquee-2元素宽度 */
@keyframes vertscroll {
  100% {
    transform: translateX(-2800px);
  }
}

注意事项

如果后续修改了跑马灯内的文本内容、字体大小、间距,需要重新测量单个文本块的宽度,更新keyframes里的偏移值,才能保持无缝滚动效果。如果需要适配不同屏幕尺寸,可通过媒体查询针对不同断点设置对应的偏移值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:36:02