При нажатии кнопки я хочу, чтобы ее цвет был инвертирован.
Ниже перечислены элементы html, вызывающие озабоченность:
<div class='chatbot-container'>
<div class='chatbot-wrapper' id='chatbot-wrapper' style="display:none;" >
<iframe
id="chatbot"
class="chatbot"
allow="microphone;"
src="https://console.dialogflow.com/api-client/demo/embedded/xxx-xxx-xxx"></iframe>
</iframe>
</div>
<button class='chat-btn' type="button" onclick="toggleChatbot()">Q</button>
</div>
Итак, вот моя таблица стилей:
.chat-btn {
background: red;
color: #fff;
font-size: 32px;
....
<code snipped for brevity>
...
}
.chat-btn:hover {
background: #fff;
color: red;
}
.chat-btn:active {
background: #fff;
color: red;
}
Ниже мой сценарий:
<script>
function toggleChatbot (chatBtn) {
var x = document.getElementById("chatbot-wrapper");
if (x.style.display === "none") {
x.style.display = "block";
chatBtn.className += ' active';
console.log(chatBtn.active)
} else {
x.style.display = "none";
chatBtn.className = chatBtn.className.replace(" active", "");
console.log(chatBtn.active)
}
}
</script>
Итак, если вы посмотрите на снимок ниже, «active» добавляется к классу, как и ожидалось. Но стиль класса псевдо css не применяется. введите описание изображения здесь