-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
58 lines (54 loc) · 1.73 KB
/
script.js
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
56
57
58
const pokeContainer = document.getElementById("poke-container");
const pokemonCount = 250;
const colors = {
fire: "#FDDFDF",
grass: "#DEFDE0",
electric: "#FCF7DE",
water: "#DEF3FD",
ground: "#f4e7da",
rock: "#d5d5d4",
fairy: "#fceaff",
poison: "#98d7a5",
bug: "#f8d5a3",
dragon: "#97b3e6",
psychic: "#eaeda1",
flying: "#F5F5F5",
fighting: "#E6E0D4",
normal: "#F5F5F5",
};
const mainTypes = Object.keys(colors);
const createPokemonCard = (pokemon) => {
const pokemonElement = document.createElement("div");
pokemonElement.classList.add("pokemon");
const name = pokemon.name[0].toUpperCase() + pokemon.name.slice(1);
const id = pokemon.id.toString().padStart(3, "0");
const pokeTypes = pokemon.types.map((type) => type.type.name);
const type = mainTypes.find((type) => pokeTypes.indexOf(type) > -1);
const color = colors[type];
pokemonElement.style.backgroundColor = color;
const pokemonInnerHTML = `
<div class="img-container">
<img src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${pokemon.id}.png"
alt="${name}" />
</div>
<div class="info">
<span class="number">#${id}</span>
<h3 class="name">${name}</h3>
<small class="type">Type: <span>${type}</span></small>
</div>
`;
pokemonElement.innerHTML = pokemonInnerHTML;
pokeContainer.appendChild(pokemonElement);
};
const getPokemon = async (id) => {
const url = `https://pokeapi.co/api/v2/pokemon/${id}`;
const res = await fetch(url);
const data = await res.json();
createPokemonCard(data);
};
const fetchPokemons = async () => {
for (let i = 1; i <= pokemonCount; i++) {
await getPokemon(i);
}
};
fetchPokemons();