Bonsoir !
Voilà j'ai commencé à faire une interaction sympa avec du JS mais je bloque sur certaines possibilitées qui pourrait rendre la chose plus agréable.
Pour info, j'ai repris les bases sur un autre exercice d'avant et donc je pense qu'il doit y avoir des choses inutile.
En gros, pour le moment quand je clic sur les 2 éléments créés par JS (music1 et music2), ça me joue bien les musiques qui correspondent. Mais j'aimerais rajouter quelques options comme par exemple stopper la musique de music1 si je clique sur music2 (et qui lancera pour le coup la musique lié à music2 et vice versa) et aussi pouvoir stoper ou mettre en pause la musique si je reclique dessus.
Du coup je me demande s'il serait pas plus simple d'intégrer un petit lecteur pour chaque élément.
Voilà !! Merci d'avance pour votre aide
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="drum.css" /> <title>Sound Project</title> </head> <body> <h1>Break</h1> <div id="audio"></div> </body> <script src="soundproject.js"></script> </html>
JS
Code:
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 var keyboard = [ { 'charCode':113, 'keyName':'music1', 'music':'Sound/music1.wav'}, { 'charCode':115, 'keyName':'music2', 'music':'Sound/music2.wav'}, ]; var audio = document.getElementById('audio'); keyboard.forEach(function(key){ var div_touche = document.createElement('div'); div_touche.className = 'touche'; div_touche.setAttribute('id','touche-'+key.charCode); div_touche.setAttribute('data-key',key.charCode); div_touche.setAttribute('data-music',key.music); div_touche.textContent = key.keyName; audio.appendChild(div_touche); }); var clik = document.querySelectorAll('.touche'); clik.forEach(function(clic){ clic.addEventListener('click',function(){ playSound(clic); }); }); function playSound(clic){ clic.style.backgroundColor = "red"; setTimeout(function(){ clic.style.backgroundColor = ''; }, 200); var son = new Audio(clic.dataset.music); son.play(); }