如何解决CSS切换背景色的问题?

时间:2019-04-09 05:12:19

标签: javascript html css html5

我正在尝试通过使用按钮切换的javascript向其添加“彩虹”类来使主体的背景颜色发生变化。

我尝试使用过去的代码来切换有效的类,并手动添加了该类以检查我的CCS是否正确。我不确定是什么原因造成的。

<!DOCTYPE html>
<html>
<head>
<style>
    @keyframes bgcolor {
        0% {
            background-color: #45a3e5
        }

        30% {
            background-color: #66bf39
        }

        60% {
            background-color: #eb670f
        }

        90% {
            background-color: #f35
        }

        100% {
            background-color: #864cbf
        }
    }

    button {
        color: black;
        font-size: 48px;
        font-style: italic;
        font-family: "Comic Sans MS", cursive, sans-serif;
        text-align: center;
        padding: 20px;
        border-radius: 50px;
        background-color: gray;
    }

    .rainbow {
        -webkit-animation: bgcolor 20s infinite;
        animation: bgcolor 10s infinite;
        -webkit-animation-direction: alternate;
        animation-direction: alternate;
    }
</style>
<head>
<body id="body">
<button id="button">hello world</button>
<script>
function rainbowTime() {
        body.classList.toggle('rainbow');
    }
    button.onclick = rainbowTime;
</body>
</html>

当按下按钮时,背景应该像我编辑html并添加“ rainbow”类时那样改变颜色。如果我能提供任何帮助,那就太好了!

2 个答案:

答案 0 :(得分:1)

您有一些未关闭的标签。

head未关闭。 script尚未关闭。

每当您遇到JavaScript问题时。请查看浏览器控制台以获取更多信息。

<!DOCTYPE html>
<html>

<head>
  <style>
    @keyframes bgcolor {
      0% {
        background-color: #45a3e5
      }
      30% {
        background-color: #66bf39
      }
      60% {
        background-color: #eb670f
      }
      90% {
        background-color: #f35
      }
      100% {
        background-color: #864cbf
      }
    }
    
    button {
      color: black;
      font-size: 48px;
      font-style: italic;
      font-family: "Comic Sans MS", cursive, sans-serif;
      text-align: center;
      padding: 20px;
      border-radius: 50px;
      background-color: gray;
    }
    
    .rainbow {
      -webkit-animation: bgcolor 20s infinite;
      animation: bgcolor 10s infinite;
      -webkit-animation-direction: alternate;
      animation-direction: alternate;
    }
  </style>

</head>

<body id="body">
  <button id="button">hello world</button>
  <script>
    function rainbowTime() {
      body.classList.toggle('rainbow');
    }
    button.onclick = rainbowTime;
  </script>
</body>

</html>

答案 1 :(得分:1)

在代码中不关闭标签,应该关闭head标签和script标签

 <!DOCTYPE html>
 <html>
<head>
<style>
   @keyframes bgcolor {
      0% {
          background-color: #45a3e5
      }

    30% {
        background-color: #66bf39
    }

    60% {
        background-color: #eb670f
    }

    90% {
        background-color: #f35
    }

    100% {
        background-color: #864cbf
    }
}

button {
    color: black;
    font-size: 48px;
    font-style: italic;
    font-family: "Comic Sans MS", cursive, sans-serif;
    text-align: center;
    padding: 20px;
    border-radius: 50px;
    background-color: gray;
}

.rainbow {
    -webkit-animation: bgcolor 20s infinite;
    animation: bgcolor 10s infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate;
}
</style>
</head>
<body id="body">
<button id="button">hello world</button>
 </body>
  </html>
  <script>
    function rainbowTime() {
      body.classList.toggle('rainbow');
    }
     button.onclick = rainbowTime;
  </script>