forked from WebDevSimplified/JavaScript-Piano
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
133 lines (104 loc) · 4.04 KB
/
script.js
File metadata and controls
133 lines (104 loc) · 4.04 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm']
const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j']
const keys = document.querySelectorAll('.key')
const whiteKeys = document.querySelectorAll('.key.white')
const blackKeys = document.querySelectorAll('.key.black')
keys.forEach(key => {
key.addEventListener('click', () => playNote(key))
})
document.addEventListener('keydown', e => {
if (e.repeat) return
const key = e.key
const whiteKeyIndex = WHITE_KEYS.indexOf(key)
const blackKeyIndex = BLACK_KEYS.indexOf(key)
if (whiteKeyIndex > -1) playNote(whiteKeys[whiteKeyIndex])
if (blackKeyIndex > -1) playNote(blackKeys[blackKeyIndex])
})
function playNote(key) {
const noteAudio = document.getElementById(key.dataset.note)
noteAudio.currentTime = 0
noteAudio.play()
key.classList.add('active')
noteAudio.addEventListener('ended', () => {
key.classList.remove('active')
})
}
function show (want) {
if (want == 'vane'){
var intro = document.getElementById('intro');
intro.style.display = 'none';
var want = document.getElementById(want);
var regular = document.getElementById('regular');
var marti = document.getElementById('marti');
var mela = document.getElementById('mela');
regular.style.display = 'none';
marti.style.display = 'none';
mela.style.display = 'none';
want.removeAttribute("style");
var navregular = document.getElementById('navregular');
var navmarti = document.getElementById('navmarti');
var navmela = document.getElementById('navmela');
var navvane = document.getElementById('navvane');
navvane.classList.toggle('active');
navregular.removeAttribute("class");
navmarti.removeAttribute("class");
navmela.removeAttribute("class");
} else if (want == 'regular') {
var intro = document.getElementById('intro');
intro.style.display = 'none';
var want = document.getElementById(want);
var vane = document.getElementById('vane');
var marti = document.getElementById('marti');
var mela = document.getElementById('mela');
vane.style.display = 'none';
marti.style.display = 'none';
mela.style.display = 'none';
want.removeAttribute("style");
var navregular = document.getElementById('navregular');
var navmarti = document.getElementById('navmarti');
var navmela = document.getElementById('navmela');
var navvane = document.getElementById('navvane');
navregular.classList.toggle('active');
navvane.removeAttribute("class");
navmarti.removeAttribute("class");
navmela.removeAttribute("class");
} else if (want == 'marti') {
var intro = document.getElementById('intro');
intro.style.display = 'none';
var want = document.getElementById(want);
var regular = document.getElementById('regular');
var vane = document.getElementById('vane');
var mela = document.getElementById('mela');
regular.style.display = 'none';
vane.style.display = 'none';
mela.style.display = 'none';
want.removeAttribute("style");
var navregular = document.getElementById('navregular');
var navmarti = document.getElementById('navmarti');
var navmela = document.getElementById('navmela');
var navvane = document.getElementById('navvane');
navmarti.classList.toggle('active');
navregular.removeAttribute("class");
navvane.removeAttribute("class");
navmela.removeAttribute("class");
} else if (want == 'mela') {
var intro = document.getElementById('intro');
intro.style.display = 'none';
var want = document.getElementById(want);
var regular = document.getElementById('regular');
var marti = document.getElementById('marti');
var vane = document.getElementById('vane');
regular.style.display = 'none';
marti.style.display = 'none';
vane.style.display = 'none';
want.removeAttribute("style");
var navregular = document.getElementById('navregular');
var navmarti = document.getElementById('navmarti');
var navmela = document.getElementById('navmela');
var navvane = document.getElementById('navvane');
navmela.classList.toggle('active');
navregular.removeAttribute("class");
navmarti.removeAttribute("class");
navvane.removeAttribute("class");
}
}