使用 css3 动画关键帧继续滑块

Car*_*los 3 html css css-animations

我正在使用 css3 构建一个滑块。现在滑块连续运行,但流程不正确。在幻灯片 4 之后,滑块从左到右返回到第一张幻灯片。

在最后一张幻灯片之后我想要的是第一张幻灯片应该从右到左出现,因为它以其他幻灯片的方式出现。

只能通过 css 实现吗?

@keyframes slide{
  0%{ transform:translateX(0px) }
  25%{ transform:translateX(-200px) }
  50%{ transform:translateX(-400px) }
  75%{ transform:translateX(-600px) }
  100%{ transform:translateX(0px) }
}
Run Code Online (Sandbox Code Playgroud)

小提琴

val*_*als 6

我设置了不同的解决方案以避免复制第一张图片

动画更复杂,但您可以重用它设置延迟

#slideshow {
  position: relative;
  width: 200px;
  height: 400px;
  border: 5px solid #fff;
  overflow: hidden;
}
#slideshow img {
  position: absolute;
  left: 0px;
  top: 0;
  animation: slide 5s infinite;
}
#slideshow img:nth-child(2) {
  animation-delay: -1.25s;
}
#slideshow img:nth-child(3) {
  animation-delay: -2.5s;
}
#slideshow img:nth-child(4) {
  animation-delay: -3.75s;
}
@keyframes slide {
  0% {
    transform: translateX(0px);
  }
  20% {
    transform: translateX(0px);
  }
  25% {
    transform: translateX(-200px);
    opacity: 1;
  }
  30% {
    transform: translateX(-200px);
    opacity: 0;
  }
  90% {
    transform: translateX(200px);
    opacity: 0;
  }
  95% {
    transform: translateX(200px);
    opacity: 1;
  }
  100% {
    transform: translateX(0px);
    opacity: 1;
  }
  }
Run Code Online (Sandbox Code Playgroud)
<div id="slideshow">
  <img src="http://placehold.it/200x400/4F77AA/FFFFFF">
  <img src="http://placehold.it/200x400/72A94C/FFFFFF">
  <img src="http://placehold.it/200x400/A94F83/FFFFFF">
  <img src="http://placehold.it/200x400/F9E934/FFFFFF">
</div>
Run Code Online (Sandbox Code Playgroud)