css - 如何使文本阴影位于真实文本旁边,使其看起来像CSS中的重复文本?

标签 css css-animations

我正在创建字幕。这些是步骤: enter image description here enter image description here enter image description here 为此,我必须在原始文本旁边创建一个 text-shadow 。问题是文本宽度不是恒定的,所以我可以这样做:

...{
  text-shadow: 619px 0 0 black;
}

这是我的代码:

.marquee {
  white-space: nowrap;
  overflow: hidden;
  pointer-events: none;
  text-shadow: 619px 0 0 black;
}

.marquee>* {
  width: 100%;
  display: inline-block;
  transform: translateX(0%);
  animation: marquee 5s linear infinite;
  will-change: transform;
}

@keyframes marquee {
  to {
    transform: translateX(-100%);
  }
}
<div class="marquee">
  <h1>lorem ipsum dolor ist as ment lorem ipsum</h1>
</div>

注意:我知道我可以在 JavaScript 中获取文本的宽度并根据它设置阴影。

最佳答案

您可以使用 html data attribute 来实现此目的和CSS after pseudo-element

只需将 h1 标记内的文本复制到 data-text 属性即可。

.marquee {
  white-space: nowrap;
  overflow: hidden;
  pointer-events: none;
}

.marquee > h1 {
  width: 100%;
  display: inline-block;
  transform: translateX(0%);
  animation: marquee 5s linear infinite;
  will-change: transform;
}

h1::after {
  /* this is where you will use the data-attribute */
  content: attr(data-text);
  display: inline;
  margin-left: 50px;
}

@keyframes marquee {
  to {
    transform: translateX(-100%);
  }
}
<div class="marquee">
  <h1 data-text="lorem ipsum dolor ist as ment lorem ipsum">lorem ipsum dolor ist as ment lorem ipsum</h1>
</div>

关于css - 如何使文本阴影位于真实文本旁边,使其看起来像CSS中的重复文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74628985/

相关文章:

html - 尽管 margin-bottom 工作,但 margin-top 不工作

html - 图像的无限横向滚动动画

javascript - CSS 动画填充模式 - 我做错了什么?

javascript - 显示全宽垂直导航项

javascript - jquery动画页面打桩

javascript - 每 3 秒重复一次动画

css - 动画图标字体微调器

css - 使用 CSS3 动画更改背景图像

javascript - 如何检测 salesforce lightning 应用程序是在移动浏览器还是桌面浏览器上运行?

css - 如何使用 ASP.NET MVC 引用 CSS 样式?