javascript - CSS/HTML - 无限滚动 slider 问题

标签 javascript jquery html css

我正在创建一个 slider ,其目标是让三个不同的广告在无限循环中从左向右滑动。

我是这样创建 slider 的:

  <div class="container">
    <div id="slider">
      <div class="box">
        <div class="one"></div>
      </div>
      <div class="box">
        <div class="two"></div>
      </div>
      <div class="box">
        <div class="three"></div>
      </div>
    </div>
  </div>

这里的CSS:

.container {
  width: 500px; 
  max-width: 500px; 
  height: 200px; 
  overflow: hidden;
}

#slider {
  width: 300%; 
  position: relative; 
  overflow: hidden;
  animation: 6s slide infinite; 
}

@keyframes slide {
  0% {margin-left: 0}
  16.67% {margin-left: 0}
  33.33% {margin-left: -100%}
  50% {margin-left: -100%}
  66% {margin-left: -100%}
  75% {margin-left: -200%}
  100% {margin-left: -200%}
}

.box {
  width: 33.33%;
  height: 100%; 
  float: left;
}

.box div {
  margin: 0 auto;
  width: 50%;
  height: 50px; 
}

.one {
  background: green; 
}

.two {
  background: red; 
}

.three {
  background: blue; 
}

Working JSBin

问题:

我无法让第一张幻灯片“重置”,所以我在动画结束时重置时出现小闪烁。我尝试了不同的方法,但无济于事。最理想的是,我可以添加一个“隐形”关键帧来重置位置。任何想法这是如何工作的?

最佳答案

你需要在css中添加animation-directionanimation-play-state。 更新 #slider 的 CSS,例如:

#slider {
  width: 300%; 
  position: relative; 
  overflow: hidden;
  animation-name: slide;
  animation-duration: 6s;
  animation-iteration-count:infinite;
  animation-direction:alternate;
  animation-play-state:running;
}

结果 https://jsfiddle.net/Coderius/sqga89eo/

或者如果需要将最后一张幻灯片返回到第一张幻灯片,请更改:

#slider {
    width: 300%; 
    position: relative; 
    overflow: hidden;
    animation-name: slide;
    animation-duration: 6s;
    animation-iteration-count:infinite;
    /* animation-direction:alternate; */
    /* animation-play-state:running; */

}

@keyframes slide {
  0% {margin-left: 0}
  16.67% {margin-left: 0}
  33.33% {margin-left: -100%}
  50% {margin-left: -100%}
  66% {margin-left: -100%}
  75% {margin-left: -200%}
  80% {margin-left: -200%}
  85% {margin-left: -200%}
  100% {margin-left: 0%}
}

结果 - https://jsfiddle.net/Coderius/j2b3vm65/

关于javascript - CSS/HTML - 无限滚动 slider 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58558131/

相关文章:

javascript - 使用 $resource 服务访问 REST API

javascript - 用 var 重新声明对象

javascript - 在另一个 div 中滚动 div

JavaScript 动态时间 SetTimeout 方法改变高度

javascript - 点击adsense广告或任何地方时隐藏div

javascript - 无法在对象方法中的箭头函数上绑定(bind)上下文

javascript - tick 的正确定义是什么?

javascript - 根据特定列过滤表

javascript - <form> 导致我的 JavaScript 代码出现问题

html - 如何在标题内移动图像?