如何使我的图像轮播循环而不是返回

Skantzy

我目前正在制作图像轮播,但遇到了问题。滑块的自动功能无法正常运行。当滑块到达最后一张图像时,它会一直返回到第一张图像,从而显示之间的图像,而不是循环回到第一张图像。我可以在代码中添加些什么来实现这一目标?这是相关的代码。

HTML:

<div class="carousel-container">
    <i class="fa fa-angle-left" id="prevBtn"></i>
    <i class="fa fa-angle-right" id="nextBtn"></i>
    <div class="carousel-slide">
        <img src="./img/testpic3.jpg" id="lastClone" alt="">
        <img src="./img/testpic1.jpg" alt="">
        <img src="./img/testpic2.jpg" alt="">
        <img src="./img/testpic3.jpg" alt="">
        <img src="./img/testpic1.jpg" id="firstClone" alt="">
    </div>
</div>

JavaScript:

const carouselSlide = document.querySelector('.carousel-slide');
const carouselImages = document.querySelectorAll('.carousel-slide img');


const prevBtn = document.querySelector('#prevBtn');
const nextBtn = document.querySelector('#nextBtn');


let counter = 1;
const size = carouselImages[0].clientWidth;

carouselSlide.style.transform = 'translateX(' + (-carouselImages[0].clientWidth * counter) + 'px)';

var interval = 3000; // 1000 = 1 sec
setInterval(function() {
    var offset = counter % (carouselImages.length - 2);
    carouselImages[counter].id === 'firstClone';
    carouselSlide.style.transition = "transform 0.4s ease-in-out";
    carouselSlide.style.transform = 'translateX(' + (-carouselImages[0].clientWidth * counter) + 'px)';
    counter++;


    if (offset == 0) counter = 1; // to reset counter so next and prev button should work 

}, interval);

提前致谢!

乌里·默克(Uriy Merk)

解:

  1. 在HTML中的firstClone之后添加twoClone。
  2. 在步骤“ last→firstClone”之后,立即关闭动画并跳至幻灯片“ first”。之后,打开动画并转到常规轮播。

HTML:

<div class="carousel-container">
    <i class="fa fa-angle-left" id="prevBtn"></i>
    <i class="fa fa-angle-right" id="nextBtn"></i>
    <div class="carousel-slide">
        <img src="./img/testpic3.jpg" alt="" title="lastClone">
        <img src="./img/testpic1.jpg" alt="" title="first">
        <img src="./img/testpic2.jpg" alt="">
        <img src="./img/testpic3.jpg" alt="" title="last">
        <img src="./img/testpic1.jpg" alt="" title="firstClone">
        <img src="./img/testpic2.jpg" alt="" title="twoClone">
    </div>
</div>

JavaScript:

const carouselSlide = document.querySelector(".carousel-slide");
const carouselImages = document.querySelectorAll(".carousel-slide img");

const prevBtn = document.querySelector("#prevBtn");
const nextBtn = document.querySelector("#nextBtn");

let counter = 1;
let durationAnimation = 400; // ms
let activeAnimation = "transform " + durationAnimation + "ms ease-in-out";
const size = carouselImages[0].clientWidth;
const updateSlideTransformX = () => {
  carouselSlide.style.transform = "translateX(" + -size * counter + "px)";
};
const changeActiveAnimation = off => {
  carouselSlide.style.transition = off === false ? "" : activeAnimation;
};

updateSlideTransformX();

let interval = 1000; // 1000 * 3 sec
setInterval(function() {
  // enable animation
  if (counter === 1) changeActiveAnimation()
  
  // to next slide
  counter++;
  updateSlideTransformX();

  if (counter >= carouselImages.length - 2) {
    counter = 1;
    setTimeout(() => {
      // disable animation & jump to slide 1
      changeActiveAnimation(false);
      updateSlideTransformX();
    }, durationAnimation);
  }
}, interval);

在线沙箱和演示

``


附加解决方案-往返传送带。
在线沙箱和演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何循环React Bootstrap轮播项目

来自分类Dev

Javascript for循环返回“ null”而不是我的值

来自分类Dev

为什么我的循环返回 0 而不是循环值?

来自分类Dev

如何停止BootstrapVue轮播循环?

来自分类Dev

自制图像轮播不会循环播放

来自分类Dev

图像轮播不会反向无限循环

来自分类Dev

自制图像轮播不会循环播放

来自分类Dev

希望我的for循环返回R中的字母而不是数字

来自分类Dev

我在VBA中的for循环返回#REF而不是整数

来自分类Dev

如何限制我从 graphql 返回的图像数量?

来自分类Dev

在循环内返回-我如何确保它不在循环内?

来自分类Dev

如何在Bootstrap3轮播滑块中添加图标/图像作为指示符而不是列表圆

来自分类Dev

如何使用自举轮播进行循环

来自分类Dev

如何在Android上开发图像轮播?

来自分类Dev

如何减少轮播显示的图像数量?

来自分类Dev

如何从 kivy 的轮播中删除图像?

来自分类Dev

图像轮播

来自分类Dev

我如何在 bs4 中的轮播中集中并缩小两个图像之间的间隙?

来自分类Dev

如何遍历我的数据系列并返回列表而不是单个值?

来自分类Dev

为什么javaScript中的这个循环函数不是每次都返回0?我将如何在 python 中做类似的事情?

来自分类Dev

如果我的Pharo图像陷入无限循环,我该如何跳出循环?

来自分类Dev

OpenCV 返回黑白图像而不是灰度图像

来自分类Dev

尝试在轮播中显示Instagram图像-仅在图像加载完成后才如何加载轮播?

来自分类Dev

我想将图像放在自举程序中的轮播之上

来自分类Dev

我想将图像放在自举程序中的轮播之上

来自分类Dev

我的图像轮播无法正常工作?(HTML和CSS)

来自分类Dev

无法为我的 boostrap 4 轮播图像着色

来自分类Dev

我如何在while循环中返回值

来自分类Dev

我如何返回在循环javascript中创建的数组?

Related 相关文章

  1. 1

    我如何循环React Bootstrap轮播项目

  2. 2

    Javascript for循环返回“ null”而不是我的值

  3. 3

    为什么我的循环返回 0 而不是循环值?

  4. 4

    如何停止BootstrapVue轮播循环?

  5. 5

    自制图像轮播不会循环播放

  6. 6

    图像轮播不会反向无限循环

  7. 7

    自制图像轮播不会循环播放

  8. 8

    希望我的for循环返回R中的字母而不是数字

  9. 9

    我在VBA中的for循环返回#REF而不是整数

  10. 10

    如何限制我从 graphql 返回的图像数量?

  11. 11

    在循环内返回-我如何确保它不在循环内?

  12. 12

    如何在Bootstrap3轮播滑块中添加图标/图像作为指示符而不是列表圆

  13. 13

    如何使用自举轮播进行循环

  14. 14

    如何在Android上开发图像轮播?

  15. 15

    如何减少轮播显示的图像数量?

  16. 16

    如何从 kivy 的轮播中删除图像?

  17. 17

    图像轮播

  18. 18

    我如何在 bs4 中的轮播中集中并缩小两个图像之间的间隙?

  19. 19

    如何遍历我的数据系列并返回列表而不是单个值?

  20. 20

    为什么javaScript中的这个循环函数不是每次都返回0?我将如何在 python 中做类似的事情?

  21. 21

    如果我的Pharo图像陷入无限循环,我该如何跳出循环?

  22. 22

    OpenCV 返回黑白图像而不是灰度图像

  23. 23

    尝试在轮播中显示Instagram图像-仅在图像加载完成后才如何加载轮播?

  24. 24

    我想将图像放在自举程序中的轮播之上

  25. 25

    我想将图像放在自举程序中的轮播之上

  26. 26

    我的图像轮播无法正常工作?(HTML和CSS)

  27. 27

    无法为我的 boostrap 4 轮播图像着色

  28. 28

    我如何在while循环中返回值

  29. 29

    我如何返回在循环javascript中创建的数组?

热门标签

归档