Thermomètre en javascript

Résolu/Fermé
Docxydre - Modifié le 26 nov. 2021 à 21:41
 Docxydre - 26 nov. 2021 à 23:09
Bonjour, je dois faire un thermomètre qui change quand on appuie sur un bouton, j'ai créé une fonction qui modifie mon thermomètre qui marche bien mais je n'arrive pas à le modifier en appuyant sur les boutons. Je ne trouve pas comment prendre l'information dans CityTemperatures. Merci de m'aider.


var cityTemperatures = {
    "Arles": 8,
    "Hanoi": 14,
    "Lille": 4,
    "Nancy": 1,
    "Nîmes": 8,
    "Paris": 5,
    "Rabat": 15,
    "Tokyo": 8,
    "Tunis": 13
};

function addCityButton(city){
    var btn = document.createElement("button");
    btn.innerHTML = city; 
    btn.style.float = "left";
    btn.style.height = "100px";
    btn.style.width = "100px";
    btn.style.border = "solid grey 1px";
    btn.style.fontSize = "1,5em";
    btn.addEventListener("click", setTemperature);
    cityDiv.appendChild(btn);
}

var cityDiv = document.getElementById("cities");
for (var city in cityTemperatures){
    addCityButton(city);
}


function setTemperature(temperature){
    if (temperature > -20 && temperature < 40){
        var valueDiv = document.getElementById("temperature-value");
        valueDiv.innerHTML = temperature + "°C";
        
        var fillDiv = document.getElementById("thermometer-fill");
        fillDiv.style.height = 5*temperature+110+"px";

        var colorDiv = document.getElementsByClassName("mercury");
        for (var i = 0; i < colorDiv.length; i++){
            if (temperature <= 0)
            colorDiv[i].style.backgroundColor='blue';
        else
            colorDiv[i].style.backgroundColor='red';
        }
    }
}




EDIT: correction des balises de code

2 réponses

jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
26 nov. 2021 à 21:58
Bonjour,

 var cityTemperatures = {
    "Arles": 8,
    "Hanoi": 14,
    "Lille": 4,
    "Nancy": 1,
    "Nîmes": 8,
    "Paris": 5,
    "Rabat": 15,
    "Tokyo": 8,
    "Tunis": 13
};

function addCityButton(city,temp){
    var btn = document.createElement("button");
    btn.innerHTML = city; 
    btn.style.float = "left";
    btn.style.height = "100px";
    btn.style.width = "100px";
    btn.style.border = "solid grey 1px";
    btn.style.fontSize = "1,5em";
    btn.setAttribute("onclick","setTemperature('"+temp+"');");
      
    cityDiv.appendChild(btn);
}


function setTemperature(temperature){
    console.log(temperature);
    if (temperature > -20 && temperature < 40){
        var valueDiv = document.getElementById("temperature-value");
        valueDiv.innerHTML = temperature + "°C";
        
        var fillDiv = document.getElementById("thermometer-fill");
        fillDiv.style.height = 5*temperature+110+"px";

        var colorDiv = document.getElementsByClassName("mercury");
        for (var i = 0; i < colorDiv.length; i++){
            if (temperature <= 0)
            colorDiv[i].style.backgroundColor='blue';
        else
            colorDiv[i].style.backgroundColor='red';
        }
    }
}


var cityDiv = document.getElementById("cities");
for( var city in cityTemperatures){
    console.log("city",city,"temp", cityTemperatures[city]);
    addCityButton(city,cityTemperatures[city]);
};


1
merci beaucoup c'est incroyable j'espérais juste une piste mais la c'est encore mieux encore merci !
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
26 nov. 2021 à 16:29
Bonjour,

Qu'appelles tu CityTemperatures ?
C'est un site ou une api disponible sur le net ??

Je suppose que c'est une API .. et dans ce cas, il faut regarder la documentation...

0
Non c’est ma variable que je défini au début
0