【发布时间】:2019-08-07 06:18:01
【问题描述】:
这是我在这个网站上的第一个问题,因此任何关于如何编辑未来问题的建议都将被欣然接受。
现在我有一个从左到右显示的文本,就像在选取框中一样,带有一个在 30 秒内滚动单词的动画。
我的问题是,即使动画按照我想要的方式运行,它的行为也会随着动画的速度而奇怪,当文本没有完全显示在选取框上时,它会以恒定的速度前进,但只要到达文本的结尾,然后它会以非常明显的方式减慢动画。
这是我现在的代码:
HTML:
<div>
<p id="text" class="marquee smart-stops-small">{A-B}</p>
</div>
<div>
<p id="text" class="marquee smart-stops-small">{A-B-C-D-E-F-G-H-I-J-K-etc.}</p>
</div>
CSS:
.smart-stops-small{
font-size: 1.9em;
text-align: center;
line-height: 3.8em;
display: block; /* Fallback for non-webkit */
display: -webkit-box;
max-width: 400px;
height: 3.8em; /* Fallback for non-webkit */
margin: 0 auto;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
/* Make it a marquee */
.marquee {
margin: 0 auto;
overflow: hidden;
white-space: nowrap;
box-sizing: border-box;
animation: marquee 30s linear infinite;
}
/* Make it move */
@keyframes marquee {
0% { text-indent: 15em }
100% { text-indent: -55em }
}
我用我拥有的 HTML 和 CSS 创建了一个 Fiddle: https://jsfiddle.net/zkv1t4g6/1/
编辑:
稍微接触一下 smart-stops-small 的 CSS 类后,我发现破坏动画的是 text-align 属性
这个更新的小提琴显示了它: https://jsfiddle.net/zkv1t4g6/2/
编辑 2:
在最后一个小提琴中,我删除了该类的大部分属性,在这一个中,唯一被删除的是text-align: center;,看起来动画效果很好:
https://jsfiddle.net/zkv1t4g6/3/
现在,问题变了,我想知道为什么文本对齐会干扰动画的速度。这两者之间的相互作用是什么?
谢谢!
【问题讨论】:
-
发生这种情况是因为您将
text-align: center;分配给您的文本。 -
谢谢 Hunter,这就是我发现的,现在有什么解释吗?
-
@HunterTurner 您介意发表您的评论作为答案,以便我接受并关闭问题吗?