[英]Best way to switch between two colours with javascript?
Javascript初學者在這里。 我本質上想做一個簡單的開關。 如果元素為黑色,請將其更改為白色。 如果是白色,請將其更改為黑色。
function changeClass() { if (document.getElementById('myButton').style.backgroundColor == "white") { document.getElementById('myButton').style.backgroundColor = "black"; } else { document.getElementById('myButton').style.backgroundColor = "white"; } }
<button class="normal" id="myButton" onclick='changeClass()' >Change Colour</button>
這段代碼很亂。 有一個更好的方法嗎?
切換課程:
function changeClass(){
document.getElementById('myButton').classList.toggle("the-class");
}
你的CSS在哪里:
.the-class {
background-color: black;
}
...假設元素的正常背景顏色為白色。
更多關於classList
信息 。 支持很好,但您可能需要在舊環境中使用polyfill。
例:
function changeClass() { document.getElementById('myButton').classList.toggle("the-class"); }
.the-class { background-color: black; }
<button class="normal" id="myButton" onclick='changeClass()'>Change Colour</button>
你可以使用classList.toggle()
document.querySelector('#myButton').addEventListener('click',e => { e.target.classList.toggle('black') })
.black{ background:black }
<button class="normal" id="myButton">Change Colour</button>
使用類似classList.toggle()
東西
function switchColor(){ document.getElementById("resultDiv").classList.toggle("toggle") }
.element { height: 100px; width: 100px; background-color: red; } .element.toggle{ background-color: blue !important; }
<button onclick="switchColor()">Click me</button> <div id="resultDiv" class="element toggle"></div>
您可以在css中創建一些特定的類(例如, .black
類,其中包含background-color: black;
規則),然后根據您的條件附加/分離該類。
您的DOM元素(HTML標記)具有方便的classList
屬性,可以將其視為附加到此DOM的類列表。 我建議在這里閱讀更多相關內容。
總的來說,您的功能可以寫成:
const element = document.getElementById("coolDiv");
element.classList.contains('black')) {
element.classList.remove('black')
} else {
element.classList.add('black')
}
或者甚至用三元運算符更簡潔一些
const element = document.getElementById("coolDiv");
element.classList.contains('black') ?
element.classList.remove('black') : element.classList.add('black')
或者只是具有相同classList
屬性的toggle
功能
const element = document.getElementById("coolDiv");
element.classList.toggle('black')
希望能幫助到你! 干杯!
如果白色不是你可以重構使用的defualt顏色? 運營商:
let btn = document.getElementById('myButton');
btn.style.backgroundColor = btn.style.backgroundColor === 'white' ? 'black' : 'white';
對於這個動作不需要外部JavaScript你可以在這里編寫簡單的內聯javascript代碼:
.black-button { background: black; color: #fff; outline: 0; padding: 20px; } button { transition: 0.3s; cursor: pointer; }
<button class="normal" onclick="this.classList.toggle('black-button')">Change Colour</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.