【发布时间】:2016-03-28 20:57:10
【问题描述】:
客户请求了一个选取框样式的滚动文本横幅(是的)
尝试过使用 css 动画,但有一些我无法解决的怪癖。
https://jsfiddle.net/u2f6qdya/
问题在于列表元素只是被“敲出”并堆叠到最后一个。父级是绝对定位的,所以不确定为什么会这样。
下一个问题是关键帧,我希望项目从左侧开始,但在它们完成动画离开屏幕右侧之前再次开始进入并滚动。
CSS 代码:
.sliding-marquee {
width: 100%;
height: 44px;
background-color: #000;
opacity: 0.6;
color: white;
line-height: 44px;
margin: 0 auto;
position: relative;
overflow: hidden;
margin-top: 10px;
}
.sliding-marquee ul {
left: 0;
top: 0;
position: absolute;
animation: marquee 20s linear infinite;
}
.sliding-marquee ul li {
display: inline-block;
font-size: 20px;
text-transform: uppercase;
}
.sliding-marquee ul li i {
margin-right: 20px;
}
.sliding-marquee ul li + li {
margin-left: 40px;
}
@keyframes marquee {
0% { left: -100% }
100% { left: 100% }
}
和标记:
<div class="sliding-marquee">
<ul>
<li>TEXT 1</li>
<li>LONGER TEXT 2</li>
<li>EVEN LONGER TEXT 3</li>
</ul>
</div>
【问题讨论】:
-
您可以将
white-space: nowrap添加到您的ul元素中以防止包装 -
@DirkPennings 不知道,看起来已经好多了。
-
只是观察;在西方语言中从右到左滚动文本会更有意义。阅读滚动方式要困难得多。
-
客户请求... :)
标签: html css css-animations keyframe