-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
55 lines (50 loc) · 1.92 KB
/
Copy pathscript.js
File metadata and controls
55 lines (50 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const apiKey = "0b1537a1ae0806fb8d1f6565038e009f";
const apiUrl = "https://api.openweathermap.org/data/2.5/weather?units=metric&q=";
const searchBox = document.querySelector('.search input');
const searchBtn = document.querySelector('.search button');
const weatherIcon = document.querySelector('.weather_icon');
const addCls = document.getElementById('addcls');
async function checkWeather(city) {
const response = await fetch(`${apiUrl}${city}&appid=${apiKey}`);
const data = await response.json();
document.querySelector(".city").innerHTML = data.name;
document.querySelector(".temp").innerHTML = data.main.temp + '°C';
document.querySelector(".humidity").innerHTML = data.main.humidity + '%';
document.querySelector(".wind").innerHTML = data.wind.speed + ' kmph';
// Apply the proper color class to the weather card
removeWeatherClasses();
switch (data.weather[0].main) {
case 'Clouds':
weatherIcon.src = 'images/clouds.png';
addCls.classList.add('clouds');
break;
case 'Rain':
weatherIcon.src = 'images/rain.png';
addCls.classList.add('rain');
break;
case 'Mist':
weatherIcon.src = 'images/mist.png';
addCls.classList.add('mist');
break;
case 'Clear':
weatherIcon.src = 'images/clear.png';
addCls.classList.add('clear');
break;
case 'Drizzle':
weatherIcon.src = 'images/drizzle.png';
addCls.classList.add('drizzle');
break;
case 'Haze':
weatherIcon.src = 'images/haze.png';
addCls.classList.add('haze');
break;
default:
break;
}
}
function removeWeatherClasses() {
addCls.classList.remove('clouds', 'rain', 'mist', 'clear', 'drizzle', 'haze');
}
searchBtn.addEventListener('click', () => {
checkWeather(searchBox.value);
});