-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
65 lines (54 loc) · 1.62 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
59
60
61
62
63
64
65
const containerEl = document.getElementById('container');
const cards_length = 16;
const cards = [];
let previousShownCard = undefined;
let icons = [
'air-freshener',
'palette',
'mug-hot',
'book',
'coins',
'apple-alt',
'cog',
'flag'
];
// copy the icons again (double)
icons.push(...icons);
for(let i = 0; i < 100; i++) {
const idx1 = Math.floor(Math.random() * icons.length);
const idx2 = Math.floor(Math.random() * icons.length);
const temp = icons[idx1];
icons[idx1] = icons[idx2];
icons[idx2] = temp;
}
for(let i = 0; i < cards_length; i++) {
const cardEl = document.createElement('div');
cardEl.classList.add('card');
cardEl.innerHTML = `
<div class="front">
<i class="fas fa-${icons[i]}"> </i>
</div>
<div class="back"><small class="small">Click me </small></div>
`
cardEl.addEventListener('click', () => {
if(!cardEl.classList.contains('show')) {
cardEl.classList.add('show');
}
if(!previousShownCard) {
previousShownCard = cardEl;
} else {
const iconOne = previousShownCard.querySelector('i').classList[1];
const iconTwo = cardEl.querySelector('i').classList[1];
if(iconOne !== iconTwo) {
const temp = previousShownCard;
setTimeout(() => {
temp.classList.remove('show');
cardEl.classList.remove('show');
}, 1000)
}
previousShownCard = undefined;
}
})
cards.push(cardEl);
containerEl.appendChild(cardEl);
}