首页  >  问答  >  正文

如何停止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 天前349

全部回复(1)我来回复

  • P粉076987386

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

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

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

    回复
    0
  • 取消回复