2

我试图让它在它可以工作的地方工作:删除当前类(当前数组值)并添加下一个类(下一个数组值)。

本质上,就是这样。

    var myFunction= function (step) {
        if (lastEntered === step) {
            triggerEvent(step, "impress:stepleave");
            lastEntered = null;
 // Adding in an array of gradients 
var i;
var bg = new Aray();
bg[0] = "gradient-0";       
bg[1] = "gradient-1";       
bg[2] = "gradient-2";               
bg[3] = "gradient-3";       
bg[4] = "gradient-4";       
bg[5] = "gradient-5";                   
bg[6] = "gradient-6";       
bg[7] = "gradient-7";       
bg[8] = "gradient-8";                   

            for (i=0;i<bg.length;i++)
            {
            body.classList.add(bg[i]);
            }
        }
    };

其中body.classList.add("gradient-1"); 放,它改变了一次颜色,而不会破坏脚本的其余部分。

谢谢!

4

1 回答 1

0

首先,定义数组的更好做法是:

var bg = ["gradient-0", "gradient-1", "gradient-0", you get the idea...];

你到底想做什么?
每次调用 yourFunction 时,您的代码都会将所有 9 个类名添加到正文中。
您可以使用 classList 的 remove 方法来删​​除一个类名。
它是否取决于 className 主体应该具有的 step 的值?
你可以这样做:

body.className = bg[step];

这将删除 body 的所有 classNames 并给它 className bg[step];

或者,如果 body 的 classNames 与 bg 中的不同,那么您可以这样做:

var i = 0, len = bg.length;
for ( ; i<len; i++) {
  if (i === step) { body.classList.add(bg[i]);
  } else {
    if (body.classList.contains(bg[i]) { body.classList.remove(bg[i]); }
  }
}

希望我对您有所帮助,但我不确定步骤是什么以及您的功能应该做什么;}

于 2012-08-16T22:17:52.743 回答