我有一个可以通过CSS转换滚动的列表,但是无论列表有多长,我都希望具有相同的速度。如何使用jQuery控制速度?
这是CSS,还有笔的链接:https://codepen.io/disco_p/pen/BvWdqX?editors=1100
section {
height: 90vh;
background: #000;
}
ul {
margin: 0;
padding: 0;
list-style: none;
color: #fff;
font-size: em(18);
text-align: center;
font-weight: 500;
column-count: 4;
column-width: 200px;
column-gap: 50px;
animation: floatTextUp 3s infinite linear;
}
li {
margin-bottom: 1.1em;
}
.scroll {
height: 200px;
overflow: hidden;
position: relative;
}
@keyframes floatTextUp {
to {
transform: translateY(100%);
}
}
答案 0 :(得分:-1)
伊丽莎白,您好,:)
您在3秒钟内旅行了100%(这是相对的)。因此,您将需要具有固定的(绝对)高度,以便获得恒定的速度。 有最大列表大小吗?如果是,则可以将其用作默认高度并调整动画时间,直到您喜欢速度为止。
您必须使用某种类型的绝对高度,因此速度取决于行进的像素:
min-height: 200px;
为您的.ul
这将一直工作到所有空间都用完为止。
答案 1 :(得分:-1)
您可以根据列表的长度使用jquery设置动画持续时间。
function calcDuration(length) {
/* For every ten items take 1s */
return length / 10 + 's';
}
const listLength = $('ul li').length;
$('ul').css('animation-duration', calcDuration(listLength));