当前位置: 首页 > 面试题库 >

如何创建字幕效果?

那正初
2023-03-14
问题内容

我正在使用CSS3动画创建字幕效果。

#caption {

    position: fixed;

    bottom: 0;

    left: 0;

    font-size: 20px;

    line-height: 30px;

    height:30px;

    width: 100%;

    white-space: nowrap;

    -moz-animation:  caption 50s linear 0s infinite;

    -webkit-animation:  caption 50s linear 0s infinite;

}

@-moz-keyframes caption {

    0% { margin-left:120%; } 100% { margin-left:-4200px; }

}

@-webkit-keyframes caption {

    0% { margin-left:120%; } 100% { margin-left:-4200px; }

}


<div id="caption">

    The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. the quick brown fox jumps over the lazy dog.

</div>

现在,我可以获得基本的字幕效果,但是该代码对于此演示来说太具体了。

有没有一种方法可以避免使用诸如的特定值margin-left:-4200px;,以便它可以适应任何长度的文本?

这是一个类似的演示:http :
//jsfiddle.net/jonathansampson/XxUXD/使用text- indent但仍具有特定值。


问题答案:

只需稍加更改标记,这就是我的方法(我刚刚span在段落中插入了一个内部):

.marquee {

  width: 450px;

  margin: 0 auto;

  white-space: nowrap;

  overflow: hidden;

  box-sizing: border-box;

}



.marquee span {

  display: inline-block;

  padding-left: 100%;

  will-change: transform;

  /* show the marquee just outside the paragraph */

  animation: marquee 15s linear infinite;

}



.marquee span:hover {

  animation-play-state: paused

}





/* Make it move */



@keyframes marquee {

  0% {

    transform: translate(0, 0);

  }

  100% {

    transform: translate(-100%, 0);

  }

}





/* Respect user preferences about animations */



@media (prefers-reduced-motion: reduce) {

  .marquee {

    white-space: normal

  }

  .marquee span {

    animation: none;

    padding-left: 0;

  }

}


<p class="marquee">

   <span>

       Windows 8 and Windows RT are focused on your life—your friends

       and family, your apps, and your stuff. With new things like the

       Start screen, charms and a Microsoft account, you can spend

       less time searching and more time doing.

   </span>

   </p>

没有插入硬编码的值(取决于段落宽度)。

该动画应用了CSS3 transform属性(在需要时使用前缀),因此效果良好。

如果您只需要在开始时插入一次延迟,则还可以设置一个animation-delay。如果您需要在 每个
循环中插入一个小的延迟,则尝试使用较高的延迟padding-left(例如150%



 类似资料:
  • 问题内容: 如何在Python的Label中创建字幕效果?我在列表中有一些新闻标题,我希望它们在窗口底部滚动。 问题答案: 您可以创建一个自定义窗口小部件,但是要避免实现许多方法的任务,可以利用该类,如下所示: 在以下链接中可以找到以下示例。 输出:

  • 当前,如果我使用两个按钮“add”和“remove”,然后在recyclerview上执行相应的操作(和,则动画效果很好。 如果我以编程方式循环数据集并再次使用添加项,我不会看到任何动画。我只是看到所有的项目几乎同时出现。 如果我使用具有线性延迟的Asynctasks,然后添加/删除中的项,仍然看不到任何动画。此外,如果多个insert线程等待所有remove线程完成(没有地方让remove线程运

  • 可以对文字执行各种操作以更改其外观 例如,可以使文字变形、将文字转换为形状或向文字添加投影。创建文字效果的最简单的方法之一是在文字图层上播放 Photoshop 附带的默认的“文本效果”动作。可以通过从“动作”面板菜单选取“文本效果”访问这些效果。 沿路径或在路径内创建文字 您可以输入沿着用钢笔或形状工具创建的工作路径的边缘排列的文字。当您沿着路径输入文字时,文字将沿着锚点被添加到路径的方向排列。

  • 问题内容: 在我的应用程序中,我想用JTable的行创建过渡效果。例如,当鼠标进入该行时,该行的背景颜色将改变;相反,当鼠标退出该行时,该行的颜色将恢复正常。 我怎样才能做到这一点? 问题答案: 使用下面的代码,这将为您提供关于对JTable的行应用翻转效果的想法。

  • 问题内容: 如何在Java Swing中实现字幕效果 问题答案: 这是使用的示例。

  • 问题内容: 我正在尝试将String传递给我的。如何通过针对读者的“测试” 而不是来自读者的输入? 问题答案: 您可以如下修改代码