javascript - 每 3 秒更改一次 div 类

标签 javascript html css

希望你一切都好。我想知道你的集体天才是否可以帮助我?我有一个 div,它是一个圆圈。我还有三个 CSS 类。我想每 3 秒更改一次 div 的类和标签的文本。 任何能指出我哪里出错的人都会非常有帮助。

这是我所拥有的,目前似乎没有做任何事情:

function loadTraffLight() {
  var traffLight = document.getElementById("traffLight");
  var status = document.getElementById("status");
  var timer;
  var go = function traffGo() {
    timer = setInterval(function() {
      if (traffLight.class == "red") {
        traffLight.className = "yellow";
        status.innerText = "O.K";
      } else if (traffLight.class == "yellow") {
        traffLight.className = "green";
        status.innerText = "Authorised";
      } else {
        traffLight.className = "red";
        status.innerText = "Stop Working";

      }
    }, 3000);
  };
}
#traffLight {
  border-radius: 100px;
  width: 200px;
  height: 200px;
  border: 1px solid #000000;
  margin: 0 auto;
  color: #808080;
}
#status {
  text-align: center;
  vertical-align: bottom;
}
.red {
  background: #ff0000;
}
.yellow {
  background: #ffd800;
}
.green {
  background: #00ff21;
}
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta charset="utf-8" />
  <title>Traffic light</title>
</head>

<body onload="loadTraffLight()">
  <h1>Traffic light effect demo</h1>
  <div id="traffLight">
    <label id="status"></label>
  </div>
</body>

</html>

最佳答案

请始终使用className。除此之外,我稍微改变了你的函数结构:

function loadTraffLight() {
            var traffLight = document.getElementById("traffLight");
            var status = document.getElementById("status");
            var timer;

           
                timer = setInterval(function () {
                    if (traffLight.className == "red") {
                        traffLight.className = "yellow";
                        status.innerText = "O.K";
                    }
                    else if (traffLight.className == "yellow") {
                        traffLight.className = "green";
                        status.innerText = "Authorised";
                    }
                    else {
                        traffLight.className = "red";
                        status.innerText = "Stop Working";

                    }
                }, 1000);
        }
#traffLight{
            border-radius:100px;
           
            width:200px;
            height:200px;
            border:1px solid #000000;
            margin:0 auto;
            color:#808080;
        }
        #status{
            text-align:center;
            vertical-align:bottom;
        }

        .red{
            background:#ff0000;
        }
        .yellow{
            background:#ffd800;
        }
        .green{
            background:#00ff21;
        }
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Traffic light</title>
    

</head>
<body onload="loadTraffLight()">
    <h1>Traffic light effect demo</h1>
    <div id="traffLight">
        <label id="status"></label>
    </div>

    
</body>
</html>

关于javascript - 每 3 秒更改一次 div 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38379840/

相关文章:

html - 想要有不同的边框底部大小然后背景大小

javascript - 在javascript中创建并初始化二维数组

html和css表单标签定位

html - 当文本行以数字开头时,在 RTL 模式下,数字会显示在右侧。为什么?

html - CSS "clip"的 Safari 渲染错误

html - 当其中的 div 向左浮动时,Div 不会扩展到其内容的底部

jQuery UI Sortable - 删除元素后删除占位符

Javascript 数字格式问题

javascript - 什么是 JSONP,为什么要创建它?

php - 用于获取推文的服务器端或客户端?