获得连续滚动效果的一种简单方法是拥有两个消息副本,并以仅占总宽度 50% 的动画滚动。这样它就很顺利 - 所有消息都已通过,它会重新开始,“覆盖”第二个副本。
这是一个片段 - 它在消息之间有 24 像素,但当然可以更改这种样式以适合您的需要。
body {
background: red;
}
.page-head {
background: white;
box-sizing: border-box;
padding: 0;
position: fixed;
top: 0;
width: 375px;
}
/**
* Ticker
*/
.page-head__ticker {
font-family: "Arial";
font-size: 11px;
font-weight: Bold;
height: 36px;
line-height: 1;
padding: 0 12px;
text-transform: uppercase;
overflow: hidden;
}
.msg {
rmargin: 0 auto;
white-space: nowrap;
overflow: hidden;
animation: marquee 6s linear infinite;
display: inline-block;
}
span {
padding-left: 24px;
/* to give a gap between messages */
}
@keyframes marquee {
0% {
transform: translate(0, 0);
}
100% {
transform: translate(-50%, 0);
/* changed from 100% */
}
}
<header class="page-head">
<div class="page-head__ticker">
<p class="msg"><span>Free Shipping on orders over $50</span><span>And here is the second message</span><span>Free Shipping on orders over $50</span><span>And here is the second message</span></p>
</div>
</header>
如果您的消息整体太短而无法覆盖分配给选取框的窗口,您可能需要增加例如之间的差距。有点JS。