【问题标题】:Infinite Marquee responsive no gap无限选框响应无间隙
【发布时间】:2022-02-12 06:46:20
【问题描述】:

我对这段代码有疑问。 我想通过持续动画对这个词应用选框效果。 在我的结果中,在 100% 关键帧处,动画返回 0,效果很糟糕! 我希望动画能够完全响应。 非常感谢!

通过这个视频你可以看到错误 -> VIDEO

var elements = $('ul.tithome li').length;

for(var i=0;i < elements; i++){
 $(".tithome").clone().prependTo( ".scorri" );
};

var liEle = [];
var liEle = $(".tithome li");
.cont{
  width: 100%;
  overflow: hidden;
}

.scorri{
  position:relative;
  display: flex;
  width: 100%;
  animation-name: marquee;
  animation-duration: 20s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  justify-content: space-between;
}

.tithome{
  display: contents;
}

.tithome li{
  width: fit-content;
  display: inline-block;
  list-style: none;
  padding-right: 30px;
  font-size: 40px;
}

@keyframes marquee {
  0% { left: 0; }
  100% {left: -88.79%;}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cont">
<div class="scorri">
  <ul class="tithome">
    <li>Governance</li>
    <li>HR</li>
    <li>Sales</li>
  </ul>
</div>
</div>

【问题讨论】:

  • with no gap 是什么意思?此外,您的代码确实会持续动画。至于完全响应,你的愿望是什么?
  • 嗨斯科特,对不起我的英语。单词之间的差距不是问题。如果你看到动画直到结束,单词不会无限流动,而是在某个时刻停止并从头开始。

标签: javascript html jquery css


【解决方案1】:

您可以为transform 属性设置动画,而不是left

var elements = $('ul.tithome li').length;

for(var i=0;i < elements; i++){
 $(".tithome").clone().prependTo( ".scorri" );
};

var liEle = [];
var liEle = $(".tithome li");
.cont{
    width: 100%;
    overflow: hidden;
}

.scorri{
    position: relative;
    display: flex;
    width: 100%;
    justify-content: space-between;
}

.tithome{
    animation-name: marquee;
    animation-duration: 5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    flex-shrink: 0;
}

.tithome li{
    width: fit-content;
    display: inline-block;
    list-style: none;
    padding-right: 30px;
    font-size: 40px;
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cont">
<div class="scorri">
  <ul class="tithome">
    <li>Governance</li>
    <li>HR</li>
    <li>Sales</li>
  </ul>
</div>
</div>

【讨论】:

    【解决方案2】:

    我刚看到这篇文章。它节省了我的时间。非常感谢。顺便说一句,我为此创建了一支笔,然后从列表中删除一些空白并将其更改为 scss。

    如果有人需要,可以从这个地址找到

    https://codepen.io/tsdln/pen/LYOLdXQ

    var elements = $('ul.list li').length;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-11
      • 2010-09-30
      • 2020-12-27
      • 1970-01-01
      • 2012-04-16
      相关资源
      最近更新 更多