So verhindern Sie, dass Javascript-Code HSL automatisch in RGB konvertiert
P粉806834059
P粉806834059 2024-03-31 16:46:02
0
1
438

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粉806834059
P粉806834059

Antworte allen(1)
P粉076987386

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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage