* {
margin: 0;
padding: 0;
}
.box {
width: 300px;
margin: 0 auto;
position: relative;
border: 1px solid #ff6700;
}
.animate {
padding-left: 20px;
font-size: 12px;
color: #000;
white-space: nowrap;
display: inline-block;
animation: 15s wordsLoop linear infinite normal;
}
@keyframes wordsLoop {
0% {
transform: translateX(0px);
-webkit-transform: translateX(0px);
}
100% {
transform: translateX(-100%);
-webkit-transform: translateX(-100%);
}
}
@-webkit-keyframes wordsLoop {
0% {
transform: translateX(0px);
-webkit-transform: translateX(0px);
}
100% {
transform: translateX(-100%);
-webkit-transform: translateX(-100%);
}
}
君不见黄河之水天上来,奔流到海不复回,君不见高堂明镜悲白发,朝如青丝暮成雪,人生得意须尽欢,莫使金樽空对月
下面解释原因:
首先 这里的.box被设置了宽度为300px,而
由于是块级元素,所以默认宽度是100%,在这里也就是300px,但是
的文本宽度其实是超过300px的,题主设置transform: translateX(-100%);的本意是想让
最终能够偏移整个文段的长度,但是很遗憾,因为p是块级元素,所以transform: translateX(-100%);在这里的作用等同于transform: translateX(-300px);所以如果你的文本不是恰好300px,最终滚动停止的位置就不会是刚好在文段末尾。
添加完display: inline-block属性之后,
的宽度就是文段的宽度,自然就不会有上述的问题。