/
load-in-order.js
36 lines (31 loc) · 993 Bytes
/
load-in-order.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
'use strict'
const pokemonsNumber = Array
.from(Array(251).keys())
.map(number => String(number + 1)
.padStart(3, '0'))
function updateProgressbar() {
const progressBar = document.querySelector('progress')
const progressPercentage = document.querySelector('span')
const total = pokemonsNumber.length
let loaded = 0
return () => {
++loaded
let percentage = Math.floor((loaded * 100) / total)
progressBar.value = percentage
progressPercentage.textContent = percentage + '%'
}
}
function loadInOrder() {
const pokemonNumber = pokemonsNumber.shift()
if (pokemonNumber) {
const image = new Image()
image.src = `images/pokemons/${pokemonNumber}.png`
image.addEventListener('load', updateProgressbar())
image.addEventListener('load', loadInOrder)
image.addEventListener('error', () =>
console.log('Pokemon failed ' + pokemonNumber)
)
document.body.appendChild(image)
}
}
loadInOrder()