涉及计数器的奇怪Javascript行为

涉及计数器的奇怪Javascript行为,javascript,css,Javascript,Css,我调用函数 animate(0,"mainNav",0.02,0.04); 和宣言 function animate(num, element, transitionUnit, delayUnit) { var delay = 0; transition = 0; //var delayUnit = 0.02; transitionUnit = 0.04; var x = document.getElementById(element).getElem

我调用函数

animate(0,"mainNav",0.02,0.04); 
和宣言

function animate(num, element, transitionUnit, delayUnit) {
    var delay = 0;
        transition = 0;
    //var delayUnit = 0.02; transitionUnit = 0.04;
    var x = document.getElementById(element).getElementsByTagName("LI");

    for (i = 0; i <= x.length - 1; i++) {
        x[i].style.WebkitTransform = "translate3d(" + num + "px,0,0)";
        x[i].style.transition = transition + "s " + delay + "s ease-in-out";
        delay += delayUnit;
        transition += transitionUnit;
        if (x[i].querySelectorAll('ul li').length > 0) {
            x[i].style.background = "rgba(0,0,0,0.35)";
        }
    }
}
…它工作得完美无缺


但我想将它与发送不同延迟单元和传递单元的其他函数一起使用。我遗漏了什么吗?

明确声明所有变量:

function animate(num, element, transitionUnit, delayUnit) {
    var delay = 0;
    var transition = 0;
    var x = document.getElementById(element).getElementsByTagName("LI");

    for (var i = 0; i <= x.length - 1; i++) {
        x[i].style.WebkitTransform = "translate3d(" + num + "px,0,0)";
        x[i].style.transition = transition + "s " + delay + "s ease-in-out";
        delay += delayUnit;
        transition += transitionUnit;
        if (x[i].querySelectorAll('ul li').length > 0) {
            x[i].style.background = "rgba(0,0,0,0.35)";
        }
    }
}

当您使用参数而不是注释掉的行时,会发生什么?你有错误吗?还有,你到底怎么称呼这个?如果将注释掉的行替换为
delayUnit=+delayUnit,会发生什么;transitionUnit=+transitionUnit?我想您刚刚颠倒了两个值:
动画(0,“mainNav”,0.02,0.04)应该是
动画(0,“mainNav”,0.04,0.02)我想出来了。我将调用函数的参数放在引号中。它起作用了。我不知道为什么。
function animate(num, element, transitionUnit, delayUnit) {
    var delay = 0;
    var transition = 0;
    var x = document.getElementById(element).getElementsByTagName("LI");

    for (var i = 0; i <= x.length - 1; i++) {
        x[i].style.WebkitTransform = "translate3d(" + num + "px,0,0)";
        x[i].style.transition = transition + "s " + delay + "s ease-in-out";
        delay += delayUnit;
        transition += transitionUnit;
        if (x[i].querySelectorAll('ul li').length > 0) {
            x[i].style.background = "rgba(0,0,0,0.35)";
        }
    }
}
animate(0,"mainNav",0.04,0.02);