【问题标题】:Issue on horizontal scrolling text with delay and appearance具有延迟和外观的水平滚动文本问题
【发布时间】:2019-04-03 11:29:12
【问题描述】:

当我在第二个文本上添加动画延迟时,第一个文本不会移动。而且我没有成功地进行文本滚动的无限循环。动画结束时总会有一些断点。

我尝试了几个在网上找到的代码,但没有一个完全符合我的要求。

.scroll span {
  font-size: 1.5em;
  animation: scroll 20s linear infinite;
  position: absolute;
  top: 92vh;
  white-space: nowrap;
  overflow: hidden;
}

.second span {
  animation-delay: 10s;
}

@keyframes scroll {
  0% {
    transform: translate(-100%, 0);
  }
  100% {
    transform: translate(100%, 0);
  }
}
<div>
  <p class="scroll first"><span>scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down </span></p>
  <p class="scroll second"><span>scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down </span></p>
</div>

我只想要一个无限滚动的文本。

【问题讨论】:

    标签: html css transform


    【解决方案1】:

    第二个动画出现延迟的原因是因为您将动画设置为从 -100% 到 100%,这实际上是 2 个动画周期。因此,您的动画中会出现大约 1 个周期的空白中断。把它想象成一个圆圈移动的文本。从 -100% 到 0,文本在屏幕上移动,但从 0 到 100%,文本在屏幕外绕回起点。你的动画应该是从 -100% 到 0。

    您还需要将display: inline-blockpadding-left: 100% 添加到.scroll span 以保持2 个span 标记并排。

    .scroll {
      margin: 0 auto;
      white-space: nowrap;
      overflow: hidden;
      position: absolute;
      font-size: 1.5em;
      position: absolute;
      top: 92vh;
      white-space: nowrap;
    }
    
    .scroll span {
      display: inline-block;
      padding-left: 100%;
      animation: scroll 20s linear infinite;
    }
    
    .second span {
      animation-delay: 10s;
    }
    
    @keyframes scroll {
      0% {
        transform: translate(-100%, 0);
      }
      100% {
        transform: translate(0, 0);
      }
    }
    <div>
      <p class="scroll">
        <span>scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down&nbsp;</span>
      </p>
      <p class="scroll second">
        <span> scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down scroll down&nbsp;</span>
      </p>
    </div>

    【讨论】:

    • 哦,谢谢你,太完美了!但是有一个小问题,第一个 p 和第二个 p 之间没有空格。我们可以注意到在“scroll downscroll down”上。我能做些什么来解决这个问题?
    • 好收获!我已经为你编辑了。只需将&amp;nbsp; 添加到两个跨度的末尾即可分解文本。确保&amp;nbsp; 之前有NO 空格,否则它将注册2 个空格。应该是这样的:down&amp;nbsp;&lt;/span&gt;
    • 在 codepen 上一切正常,但是当我在项目中导入所有内容时,尽管有 overflow: hidden,但我的文本占用的空间超过了视图宽度,因此它破坏了我的网站,我该怎么办?还有,第一个p和第二个p之间的空间太大,我应该减少延迟吗?
    • 我只用width: 100vw 修复了溢出问题,但我仍然对空白有一些问题
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2018-07-04
    • 2020-04-23
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多