簡體   English   中英

如何在相似元素上多次運行循環 function - js

[英]how to run a loop function multiple times on similar elements - js

我有這個 function 循環通過 div(卡片),每 3 秒穿下一個。 一種幻燈片放映,畫廊。

我希望在多個“畫廊”(構建完全相同)上運行此 function。 我怎樣才能做到這一點?

這是現在收集頁面中所有“卡片”的 js,我希望它獲取每個畫廊的卡片並在畫廊本身上運行它:

var slideIndex = 0;
showSlides();

function showSlides() {
  var i;
  var slides = document.getElementsByClassName("card");

  for (i = 0; i < slides.length; i++) {
    slides[i].style.opacity = "0";
  }
  slideIndex++;
  if (slideIndex > slides.length) {slideIndex = 1}
  slides[slideIndex-1].style.opacity = "1";
  setTimeout(showSlides, 3000);
}

我希望我能被理解 - 非常感謝!

你幾乎實現了它:)

function slideIt(elementId) {
  var slideIndex = 0;
  // showSlides();

  function showSlides() {
    var i;
    // var slides = document.getElementsByClassName("card");
    var slides = document.getElementsById(elementId);
    // ....
  }
  showSlides();
}
slideIt("card1")
slideIt("card2")

我最終使用了它並且效果很好:

const elements = document.querySelectorAll('.today-show');
var timer = document.getElementById('timer').innerHTML;


function intervalFunction(slideIndex) {

    var i;
    const currentElement = this;

    var slides = currentElement.querySelectorAll(".home-show-title");

    for (i = 0; i < slides.length; i++) {
    slides[i].classList.remove('home-title-appear');
    }
    setTimeout(function(){
        slides[slideIndex].classList.add('home-title-appear');
    },800)
}

elements.forEach(element => {
    const boundIntervalFunction = intervalFunction.bind(element);
    let slideIndex = 1;
    setInterval(() => {
        boundIntervalFunction(slideIndex);
        slideIndex++;
        if (slideIndex > 2) {slideIndex = 0 }
    }, timer+"000"); 
});

謝謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM