小编Mai*_*min的帖子

如何在 Javascript 中创建无限轮播?

我想用javascript制作一个无限轮播。当元素离开屏幕时,我会克隆它们并将它们粘贴到列表的末尾。但一分钟后,HTML 布局中就会出现很多克隆元素。我决定在克隆后删除这个元素。但我得到了所有元素的即时偏移。如何避免呢?或者也许还有另一种算法来实现这个无尽的轮播?

这是代码https://codepen.io/alessandro-kex/pen/abGWNEK

window.addEventListener("load", function () {
  const slideContainer = document.querySelector(".carousel");
  const slidesWrapper = document.querySelector(".carousel-slides");
  let slides = document.querySelectorAll(".carousel-slide");
  let index = 0;
  const interval = 1500;
  let moveDistance = 0;
  const paddingRight = 50;
  let lastSlideIndex = slides.length - 1;
  let firstClone;

  const startSlide = (index) => {
    this.setInterval(() => {
      moveDistance = moveDistance + slides[index].clientWidth + paddingRight;
      slidesWrapper.style.transform = `translateX(${-moveDistance}px)`;
      slidesWrapper.style.transition = "1s";

      firstClone = slides[index].cloneNode(true);
      firstClone.id = `first-clone-${index}`;
      slidesWrapper.append(firstClone);
      /*If uncomment it - then the problem …
Run Code Online (Sandbox Code Playgroud)

html javascript css

5
推荐指数
2
解决办法
9489
查看次数

标签 统计

css ×1

html ×1

javascript ×1