我需要帮助可能有人请解释为什么我的setinterval表现得很傻? [关闭]

问题描述 投票:-5回答:1

好吧,我试着设置代码的间隔,但它只移动一次

function moveAllTriangles(){
    var spike = document.getElementById("spike");
    var mg = setInterval(function(){moveTriangle();},1125);
    function moveTriangle(){
        var moved = 100;
        spike.style.left = (750 - moved) + 'px';
        moved++;  
    }
}

请解释为什么这个被打破谢谢。

javascript setinterval
1个回答
2
投票

为了使这个更清楚,因为你似乎遇到了一些麻烦:你在你的间隔内重新定义了moved,所以每次运行时,它都会被设置回100。

您需要在间隔之外初始化它。

function moveAllTriangles(){
    var spike = document.getElementById("spike");
    var moved = 100;

    function moveTriangle(){
        spike.style.left = (750 - moved) + 'px';
        moved++;  
    }

    var mg = setInterval(moveTriangle, 1125);
}

此外,setInterval()采用函数名称或闭包,您不需要使用闭包,只需传递您已定义的函数的名称。

© www.soinside.com 2019 - 2024. All rights reserved.