涉及计数器的奇怪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);