Bagaimana untuk menghentikan kod Javascript daripada menukar hsl kepada rgb secara automatik
P粉806834059
P粉806834059 2024-03-31 16:46:02
0
1
540

Saya mempunyai kod ini di mana saya menetapkan warna pada objek dan kemudian menggunakan syarat untuk menyemak sama ada item tersebut telah dipilih. Walau bagaimanapun, syarat itu tidak berfungsi kerana javascript (atau penyemak imbas) menukar hsl kepada rgb, yang menghalang sebarang pemadanan daripada berlaku. Saya tertanya-tanya sama ada terdapat cara untuk menghalang tingkah laku ini dalam JS (atau penyemak imbas), dan jika tidak, mengapa ia berlaku?

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

    }
}

Saya menyedari bahawa saya boleh menyelesaikan masalah ini dengan menggunakan rgb dalam kod saya. Tetapi saya benar-benar ingin memahami mengapa ini berlaku.

P粉806834059
P粉806834059

membalas semua(1)
P粉076987386

Ini berlaku kerana ia adalah standard penyemak imbas.

Saya mengesyorkan membuat kelas css dengan warna ini dan menggunakan kelas ini dalam javascript. Lepas tu boleh guna element.classList.contains(class) dalam keadaan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan