JavaScript Onmuseover puanlama ekranı yapma

01yildizmustafa

Decapat
Katılım
4 Eylül 2022
Mesajlar
66
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Kod:
labels.forEach(function (label) {
    label.onmouseover = function () {
        label.style.backgroundColor = "hsl(25, 97%, 53%)";
    }
})

labels.forEach(function (label) {
    label.addEventListener("click", function () {
        labels.forEach(function (label) {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        })
        label.style.backgroundColor = "hsl(218, 6%, 39%)";
    })
    labels.forEach(function (label) {
        label.onmouseout = function() {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        }
    })
})


Yapmak istediğim resimdeki gibidir arkadaşlar.
Ama bir türlü yapamadım.

Butonu CSS ile yaptım.

 
Son düzenleme:
JavaScript:
labels.forEach(function (label) {
    label.onmouseover = function () {
        label.style.backgroundColor = "hsl(25, 97%, 53%)";
    }
})

Bu attığım kısımı CSS ile yapın. Hover olduğunda verdiğiniz renk gelsin, JavaScript'e gerek yok.

JavaScript:
labels.forEach(function (label) {
    label.addEventListener("click", function () {
        labels.forEach(function (label) {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        })
        label.style.backgroundColor = "hsl(218, 6%, 39%)";
    })
    labels.forEach(function (label) {
        label.onmouseout = function() {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        }
    })
})

Bu kısımda da fazla kod kullanıyorsunuz gerek yok. Dediğim mantıkta yaparsanız kod sayısı azalacaktır o zaman yapabileceğinze inanıyorum.
 
@bonz

Kod:
.puan .number label:hover {
    background-color: hsl(25, 97%, 53%);
    color: white;
}

Fare üzerine gelince hover olayını css ile yapmıştım.
Ama Kullanıcı seçim yaptıktan sonra css hover kodu çalışmıyor.

Son durumum:

Kod:
.puan .number label:hover {
    background-color: hsl(25, 97%, 53%);
    color: white;
}

Kod:
labels.forEach(function (label) {
    label.addEventListener("click", function () {
        labels.forEach(function (label) {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        })
        label.style.backgroundColor = "hsl(218, 6%, 39%)";
    })
})

Bu durumda şu sorun var:

Hover olayı gerçekleşiyor fakat kullanıcı seçim yaptıktan sonra hover çalışmıyor.

@bonz

Kod:
labels.forEach(function (label) {
    label.onmouseover = function () {
        label.style.backgroundColor = "hsl(25, 97%, 53%)";
    }
    label.onmouseout = function() {
        label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
    }
    label.addEventListener("click", function () {
        labels.forEach(function (label) {
            label.style.backgroundColor = "hsla(216, 12%, 54%, 0.149)";
        })
        label.style.backgroundColor = "hsl(218, 6%, 39%)";
    })
})

Aslında böyle yapınca çözüme biraz daha yaklaşıyorum.
Tek sorun şu kalıyor:

Kullanıcının seçtiği butonun 3. bir renge sahip olmaması.
Ben seçinlen butonun 3. bir renge sahip olmasını istiyorum.
Yani;
  1. Butonların varsayılan rengi = Tamam
  2. Seçilen butonun rengi = Olmadı
  3. Hover olayının rengi = Tamam

@bonz
Yardımcı olabilecek misiniz?
 
Son düzenleme:
Biraz karışık bir yapı olmuş. Şuan da aklıma bir şey gelmiyor gerçekten. Stackoverflow gibi yerlere baktınız mı?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…