javascript - 使用 setTimeout 动态创建多个幻灯片放映

标签 javascript jquery slider

我想在单击按钮时创建“SliderArray”数组中对象数量的幻灯片。

当前JSfiddle在独立模式下可用。

当我将函数带入循环时,事情变得一团糟

var myFunction = function() {
if (counter == 0) {
  $('#' + sliderarray[0].slaytarray[counter].id).fadeIn();
  frametime = sliderarray[0].slaytarray[counter].frame_time * 1000;
  counter++;
} else if (counter == sliderarray[0].slaytarray.length) {
  $('#' + sliderarray[0].slaytarray[counter - 1].id).fadeOut();
  counter = 0;
  frametime = 0;
} else {
  $('#' + sliderarray[0].slaytarray[counter - 1].id).fadeOut();
  $('#' + sliderarray[0].slaytarray[counter].id).fadeIn();
  frametime = sliderarray[0].slaytarray[counter].frame_time * 1000;
  counter++;
}

timeout = setTimeout(myFunction, frametime);

}

var timeout = setTimeout(myFunction, frametime);

这是我的元素 enter image description here

最佳答案

这是“困惑的”,因为您永远不会操作第二个 slider

我通过在 sliderarray 上使用 .forEach 来修复它:

var myFunction = function() {
    if (counter == 0) {
        sliderarray.forEach(function (slider) {
            $('#' + slider.slaytarray[counter].id).fadeIn();
            frametime = slider.slaytarray[counter].frame_time * 1000;
        });
        counter++;
    } else if (counter == sliderarray[0].slaytarray.length) {
        sliderarray.forEach(function (slider) {
            $('#' + slider.slaytarray[counter - 1].id).fadeOut();
        });
        counter = 0;
        frametime = 0;
    } else {
        sliderarray.forEach(function (slider) {
            $('#' + slider.slaytarray[counter - 1].id).fadeOut();
            $('#' + slider.slaytarray[counter].id).fadeIn();
            frametime = slider.slaytarray[counter].frame_time * 1000;
    });
    counter++;
}

帧时间仍然存在问题,因为您只在需要两个时才使用一次。我会让你调查一下。

参见 updated JSFiddle

关于javascript - 使用 setTimeout 动态创建多个幻灯片放映,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42927426/

相关文章:

jquery - 将元素列表拆分为组

javascript - 奇怪的 fadeIn() 和 fadeOut() 问题 jQuery

jquery - 使用溢出 :hidden 水平滑动 div

jquery - 如何制作无限滚动的图像 slider ?

jquery - 修复旋转父项内可拖动 div 的鼠标方向

html - 如何在 slider 中使用中继器

javascript - 减少react jsx中的条件检查

javascript - 访问父函数属性 Javascript

javascript - 如何让coffeescript编译器忽略源文件的一部分?

javascript - graphql-工具 : lazy fetching?