Heim  >  Fragen und Antworten  >  Hauptteil

So verhindern Sie, dass Javascript-Code HSL automatisch in RGB konvertiert

Ich habe diesen Code, bei dem ich einem Objekt eine Farbe zuweise und dann mithilfe einer Bedingung überprüfe, ob das Element ausgewählt wurde. Die Bedingung funktioniert jedoch nicht, da Javascript (oder der Browser) HSL in RGB konvertiert, wodurch ein Abgleich verhindert wird. Ich frage mich, ob es eine Möglichkeit gibt, dieses Verhalten in JS (oder Browsern) zu verhindern, und wenn nicht, warum passiert es?

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';

    }
}

Mir wurde klar, dass ich dieses Problem lösen könnte, indem ich RGB in meinem Code verwende. Aber ich würde wirklich gerne verstehen, warum das passiert.

P粉806834059P粉806834059183 Tage vor346

Antworte allen(1)Ich werde antworten

  • P粉076987386

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

    发生这种情况是因为它是浏览器的标准。

    我建议使用这些颜色创建 css 类并在 javascript 中应用这些类。然后,您可以在条件中使用 element.classList.contains(class)

    Antwort
    0
  • StornierenAntwort