首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过类名和JS数组更改背景

通过类名和JS数组更改背景
EN

Stack Overflow用户
提问于 2012-08-16 21:54:50
回答 1查看 162关注 0票数 2

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

本质上就是这样。

代码语言:javascript
复制
    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");的地方,它只改变了颜色一次,而不影响脚本的其余部分。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-08-16 22:17:52

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

代码语言:javascript
复制
var bg = ["gradient-0", "gradient-1", "gradient-0", you get the idea...];

你到底想做什么?

每次调用classNames时,代码都会将所有9个yourFunction添加到body中。

您可以使用classList的remove方法来删除className。

它是否取决于className主体应该拥有的步骤的值?

你可以这样做:

代码语言:javascript
复制
body.className = bg[step];

这将移除身体的所有classNames,并给予它className bgstep;

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

代码语言:javascript
复制
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]); }
  }
}

希望我能提供帮助,但我不太确定步骤是什么,您的函数应该做什么;}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11996003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档