-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
76 lines (59 loc) · 1.54 KB
/
main.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
66
67
68
69
70
71
72
73
74
75
76
const cardBoard = document.querySelector("#cardboard");
const images = [
'angular.svg',
'aurelia.svg',
'backbone.svg',
'ember.svg',
'react.svg',
'vue.svg',
];
let cardHTML = "";
images.forEach(img => {
cardHTML += `
<div class= "memory-card" data-card="${img}">
<img class= "front-face" src="img/${img}">
<img class= "back-face " src="img/js-badge.svg">
</div>
`;
});
cardBoard.innerHTML = cardHTML + cardHTML;
//** trabalhando JS. efeitos do jogo\\
const cards = document.querySelectorAll(".memory-card");
let firstCard, secondCard;
let lockCard = false;
function flipCard() {
if(lockCard) return false;
this.classList.add("flip");
if (!firstCard) {
firstCard = this;
return false;
}
secondCard = this;
checkForMatch();
}
function checkForMatch() {
let isMatch = firstCard.dataset.card === secondCard.dataset.card;
!isMatch ? disableCards(): resetCards(isMatch);
}
function disableCards() {
lockCard = true;
setTimeout(() => {
firstCard.classList.remove ("flip");
secondCard.classList.remove ("flip");
resetCards();
}, 1000);
}
(function shuffle(){
cards.forEach( card => {
let rand = Math.floor(Math.random() *12);
card.style.order = rand;
})
})
function resetCards(isMatch = false){
if(isMatch){
firstCard.removeEventListener("click", flipCard);
secondCard.removeEventListener("click", flipCard);
}
[firstCard, secondCard, lockCard] = [null, null, false];
}
cards.forEach(card => card.addEventListener("click", flipCard));