【问题标题】:Slider doesn't start - CSS only滑块无法启动 - 仅限 CSS
【发布时间】:2023-03-30 06:40:01
【问题描述】:

我创建了一个带有一些徽标的滑块,但动画没有开始。我只用 css 创建它,但它仍然被阻止。我检查了几次代码,但我能找到答案。 滑块应该滚动并更改徽标,但它不起作用。

我认为它也可以用 javascript 创建,但我不知道该怎么做。

有人可以帮我吗?

.slider {
  width: 960px;
  height: 100px;
  overflow: hidden;
  position: relative;
  margin: auto;
}

.slider::before,
.slider::after {
  content: "";
  position: absolute;
  width: 200px;
  height: 100px;
  background: linear-gradient(to right, width 0%, rgba(255, 255, 255, 0) 100%);
  z-index: 2;
}

.slider::before {
  top: 0;
  left: 0;
}

.slider::after {
  top: 0;
  right: 0;
  transform: rotateZ(180deg);
}

.slider .slide img {
  width: 200px;
  height: 100px;
}

.slider .slider-track {
  display: flex;
  width: calc(200px * 20);
  animation: scroll 4s ease 3s infinite linear;
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-200px * 10));
  }
}
<div class="slider">
  <div class="slider-track">
    <div class="slide">
      <img src="./1.png">
    </div>
    <div class="slide">
      <img src="./2.png">
    </div>
    <div class="slide">
      <img src="./3.png">
    </div>
    <div class="slide">
      <img src="./4.png">
    </div>
    <div class="slide">
      <img src="./5.png">
    </div>
    <div class="slide">
      <img src="./6.png">
    </div>
    <div class="slide">
      <img src="./7.png">
    </div>
    <div class="slide">
      <img src="./8.png">
    </div>
    <div class="slide">
      <img src="./9.png">
    </div>
    <div class="slide">
      <img src="./10.png">
    </div>
  </div>
</div>

【问题讨论】:

  • 罪魁祸首是你的animation 语法。有关正确的语法,请参阅developer.mozilla.org/en-US/docs/Web/CSS/animation。您可以定义两个动画,但您定义的是一个具有两次和两个计时功能的动画。例如,删除 3sease 将解决语法问题。

标签: css slider css-animations


【解决方案1】:

您的动画属性错误。

请改用这些属性。这更具可读性,并且更容易避免类似的错误:

animation-name
animation-duration
animation-timing-function
animation-delay
animation-iteration-count
animation-direction
animation-fill-mode
animation-play-state

https://www.w3schools.com/cssref/css3_pr_animation.asp

.slider {
  width: 960px;
  height: 100px;
  overflow: hidden;
  position: relative;
  margin: auto;
}

.slider::before,
.slider::after {
  content: "";
  position: absolute;
  width: 200px;
  height: 100px;
  background: linear-gradient(to right, width 0%, rgba(255, 255, 255, 0) 100%);
  z-index: 2;
}

.slider::before {
  top: 0;
  left: 0;
}

.slider::after {
  top: 0;
  right: 0;
  transform: rotateZ(180deg);
}

.slider .slide img {
  width: 200px;
  height: 100px;
}

.slider .slider-track {
  display: flex;
  width: calc(200px * 20);
  animation: scrolll 4s ease;
}

@keyframes scrolll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-200px * 10));
  }
}
<div class="slider">
  <div class="slider-track">
    <div class="slide">
      <img src="./1.png">
    </div>
    <div class="slide">
      <img src="./2.png">
    </div>
    <div class="slide">
      <img src="./3.png">
    </div>
    <div class="slide">
      <img src="./4.png">
    </div>
    <div class="slide">
      <img src="./5.png">
    </div>
    <div class="slide">
      <img src="./6.png">
    </div>
    <div class="slide">
      <img src="./7.png">
    </div>
    <div class="slide">
      <img src="./8.png">
    </div>
    <div class="slide">
      <img src="./9.png">
    </div>
    <div class="slide">
      <img src="./10.png">
    </div>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多