当前位置: 首页 > 知识库问答 >
问题:

Javascript类名更改不起作用

凌运恒
2023-03-14

我有一个小的测试页面设置来测试我有的一个sprite表。sprites.css中的每个sprite如下所示...

.a320_0 {
   top: 0px;
   left: 0px;
   width: 60px;
   height: 64px;
   background: url("images/sprites.png") no-repeat -787px -398px;
}

我的页面是这样的...

null

var i = 0

function imageChange() {
  setTimeout(function() {
    var hdg = i * 15;
    document.getElementById('image').className = "a320_" + hdg;
    i++;
    if (i < 24) {
      imageChange();
    }
  }, 1000)
}
imageChange()
<div id='imageContainer'>
  <div id='image'></div>
</div>

null

在循环过程中,我记录了类名,可以看到它的变化,并且这些名称对应于我的样式表中存在的类。sprites.csssprites.png都在images文件夹中,并且images文件夹与我的页面位于同一目录中。

如果我只是从我的样式表中复制一个规则并将其直接放到我的页面上,并将名称替换为#image以进行测试,我就可以显示这个特定的图像,这样我的sprite坐标就很好了,但是如果我在实际的css文件上做同样的事情,我就不会得到同样的结果,这导致我认为我的样式表可能没有加载。即使我只是将样式直接放入我的文档中,并尝试使用.classname=,它仍然不起作用。我最近有这个工作,但它似乎不再工作了。我有点迷路了...

共有1个答案

子车劲
2023-03-14

它应该是document.getElementById(“image”).classlist.add(“a320_”+hdg);

null

var i = 0;

function imageChange() {
  setTimeout(function() {
    var hdg = i * 15;
    document.getElementById("image").classList.add("a320_" + hdg);
    i++;
    if (i < 24) {
      imageChange();
    }
  }, 1000);
}

imageChange();
.a320_0 {
  top: 0px;
  left: 0px;
  width: 60px;
  height: 64px;
  background: url("https://source.unsplash.com/random") no-repeat -787px -398px;
}
<div id='imageContainer'>
  <div id='image'></div>
</div>
 类似资料:
  • 我正在尝试以编程方式更改页面。这第一行代码正在工作,但我不需要它延迟,所以我尝试了第二行,但它不起作用。我错过了什么? 工作(但我不想延迟): 不工作: 我在<代码>中调用它

  • 我有一个音乐播放器活动来控制歌曲的播放。我已经阅读了有关管理音频焦点的文档,并在

  • 我最近从我的windows机器换成了iMac,我把我的angular项目复制到Mac上,并按照所有的安装说明操作,但现在当我键入NPM start时,项目开始了,但当我保存文件时并没有更新。 我已经卸载了angular-cli并将其安装到最新版本 角度-CLI:1 . 0 . 0-β21 节点:6.9.1 操作系统:达尔文x64 我也安装了守夜人,但没有成功。 我杀ng服的时候,网站直接给出错误

  • 问题内容: 我只是在阅读这个问题,想尝试使用别名方法,而不是使用功能包装器方法,但是我似乎无法使其在Firefox 3或3.5beta4或GoogleChrome中在调试窗口和在测试网页中。 萤火虫: 如果将其放在网页中,则对myAlias的调用给我这个错误: Chrome(为清楚起见,插入了>>>): 在测试页中,我得到了相同的“非法调用”。 难道我做错了什么?有人可以复制吗? 另外,奇怪的是,

  • 我正在尝试更改一个JLabel的图标(背景),但我有一个问题,图标没有更新。每当我尝试更改main方法中的JLabel时,编译器首先抱怨变量不存在,所以我将它从JFrame初始化方法移到了类级变量。在此之后,Eclipse抱怨我试图从静态上下文引用一个非静态方法,因此我将设置为静态的。这使得程序可以编译,但是图标并没有在任何时候改变。 由于很难理解我的问题,这里提供了一个Eclipse工作区的下载

  • 我在xhtml上有以下组件: 这些值正确来自cCRX1Controller类。然而,当我选择一个选项时,我试图显示该值。#{digrcontroller.testing()}如下所示: 我做错了什么?我检查了这个问题,但不知道问题出在哪里。