如何用jQuery控制CSS转换的速度?

时间:2018-12-21 16:10:55

标签: javascript jquery css

我有一个可以通过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%);
    }
  }

2 个答案:

答案 0 :(得分:-1)

伊丽莎白,您好,:)

您在3秒钟内旅行了100%(这是相对的)。因此,您将需要具有固定的(绝对)高度,以便获得恒定的速度。 有最大列表大小吗?如果是,则可以将其用作默认高度并调整动画时间,直到您喜欢速度为止。

您必须使用某种类型的绝对高度,因此速度取决于行进的像素: min-height: 200px;为您的.ul

这将一直工作到所有空间都用完为止。

codepen

答案 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));