Javascript 我对转盘、setInterval和style.transform有问题;translateX“;

Javascript 我对转盘、setInterval和style.transform有问题;translateX“;,javascript,css,carousel,Javascript,Css,Carousel,我不明白为什么当函数必须显示计数器时它会工作,如果我让她翻译一个元素,她只翻译一次 这是代码,我尝试了很多,但找不到解决方案: var i; // set your counter to 1 var numberOfImages = document.getElementsByClassName("imgs").length; var imgWidth = window.innerWidth; console.log(numberOfImages); v

我不明白为什么当函数必须显示计数器时它会工作,如果我让她翻译一个元素,她只翻译一次

这是代码,我尝试了很多,但找不到解决方案:

var i; //  set your counter to 1
var numberOfImages = document.getElementsByClassName("imgs").length;
var imgWidth = window.innerWidth;
    
console.log(numberOfImages);
    
var startIt = setInterval(function() {
    document.getElementById("carouselTrain").style.transform = "translateX(" + -imgWidth + "px)";
    document.getElementById("carouselTrain").style.transitionDuration = "0.5s";
    document.getElementById("carouselTrain").style.transform = "translateX(" + -imgWidth + "px)";
    document.getElementById("carouselTrain").style.transitionDuration = "0.5s";        
}, 1000);

问题是每次翻译的值都相同。翻译不会累积,这就是为什么你看不到任何变化

如果在set interval函数中更新imgWidth的值,您将开始看到一些操作。在setInterval函数的底部执行此操作:

imgWidth += imgWidth

我真的在等待答案,它工作得很好,谢谢!如果阅读本文的人有同样的问题,我建议您创建另一个变量,如imgIncrementedWidth,并执行imgIncrementedWidth+=imgWidth。这是因为如果你重新分配同一个变量,它每次都会加倍。(如果我的英语不好,很抱歉)