首頁  >  問答  >  主體

如何停止Javascript程式碼自動將hsl轉換為rgb

我有這段程式碼,我為一個物件分配顏色,然後使用條件來檢查該項目是否已被選擇。然而,條件不起作用,因為 javascript(或瀏覽器)將 hsl 轉換為 rgb,這會阻止任何匹配的發生。我想知道是否有辦法阻止 JS(或瀏覽器)的這種行為,如果沒有,為什麼會發生?

function selecionarNota() {

    if (this.style.backgroundColor == 'hsl(25, 97%, 53%)') { 
        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

    } else {

        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

        this.style.backgroundColor = 'hsl(25, 97%, 53%)';
        this.style.color = 'white';

    }
}

我確實意識到我可以透過在程式碼中使用 rgb 來解決這個問題。但我真的很想了解為什麼會發生這種情況。

P粉806834059P粉806834059183 天前345

全部回覆(1)我來回復

  • P粉076987386

    P粉0769873862024-04-01 10:48:37

    發生這種情況是因為它是瀏覽器的標準。

    我建議使用這些顏色來建立 css 類別並在 javascript 中應用這些類別。然後,您可以在條件中使用 element.classList.contains(class)

    回覆
    0
  • 取消回覆