-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
176 lines (137 loc) · 6.5 KB
/
Copy pathscript.js
File metadata and controls
176 lines (137 loc) · 6.5 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
window.addEventListener('load', function () {
// Assure que l'écran de chargement dure au minimum 1 seconde
const loadingScreen = document.querySelector('.loading-screen');
// Temporisation minimum de 1 seconde
setTimeout(function () {
loadingScreen.style.display = 'none';
}, 1000); // 1000 ms = 1 seconde
});
/* Creation d'un curseur personnalisé grâce à une vidéo tuto youtube ! */
const cursorDot = document.querySelector('[data-cursor-dot]');
const cursorOutline = document.querySelector('[data-cursor-outline]');
window.addEventListener('mousemove', function(e){
const posX = e.clientX;
const posY = e.clientY;
cursorDot.style.left = `${posX}px`;
cursorDot.style.top = `${posY}px`;
cursorOutline.animate({
left: `${posX}px`,
top: `${posY}px`
}, { duration: 500, fill: "forwards" });
});
var audio = new Audio(); // Une seule instance pour toutes les musiques
var currentButton = null; // Pour suivre le bouton actif
fetch("musiques.json")
.then(function(response) {
return response.json();
})
.then(function(data) {
// Générer le HTML pour chaque musique
data.forEach(function(musique) {
document.querySelector(".liste-musiques").innerHTML += `
<section>
<img src=${musique.cover} alt="Image de la Cover de ${musique.musique}">
<h2>${musique.musique}</h2>
<p>Artiste : <strong> ${musique.artiste} </strong> </p>
<p>${musique.descriptionMusique}</p>
<p>Album : <strong>${musique.album}</strong></p>
<div class="redirection">
<a href="${musique.youtube}" target="_blank"> <img src="Logos/Icon-YouTube.png" title="Lien vers la musique originale sur Youtube" class="youtube"></a>
<a href="${musique.spotify}" target="_blank"> <img src="Logos/Icon-Spotify.png" title="Lien vers la musique originale sur Spotify" class="spotify"></a>
</div>
<button class="bouton-play" data-music-url="${musique.lien}">⏵</button>
</section>`;
document.querySelector("#creditsAfficher").innerHTML += `
<li><strong>${musique.musique}</strong> ${musique.credit}</li>
`
});
// Ajouter des écouteurs d'événements sur les boutons
var buttons = document.querySelectorAll(".bouton-play");
buttons.forEach(function(button) {
button.addEventListener("click", function() {
var musicUrl = button.getAttribute("data-music-url"); // URL de la musique
// Pause l'audio actuel si un autre bouton est cliqué
if (currentButton && currentButton !== button) {
currentButton.innerHTML = "⏵"; // Réinitialise l'ancien bouton
audio.pause();
}
// Gestion de la pause/reprise pour le même bouton
if (currentButton === button && !audio.paused) {
audio.pause(); // Mettre la musique en pause
button.innerHTML = "⏵"; // Remettre le bouton en état "lecture"
currentButton = null; // Plus de bouton actif
}
// Lecture d'une nouvelle musique ou reprise
else {
audio.src = musicUrl; // Charger la musique
audio.play(); // Jouer la musique
button.innerHTML = "⏸"; // Mettre le bouton en état "pause"
currentButton = button; // Mettre à jour le bouton actif
}
// Remettre l'icône à "⏵" à la fin de la musique
audio.addEventListener("ended", function() {
if (currentButton === button) {
button.innerHTML = "⏵"; // Réinitialiser le bouton
currentButton = null; // Plus de bouton actif
}
});
});
});
});
document.querySelector('.boutonCredits').addEventListener('click', function(event){
event.preventDefault()
if (document.querySelector('.BlocCredit').hasAttribute('hidden')){
document.querySelector('.BlocCredit').removeAttribute('hidden')
}
else{document.querySelector('.BlocCredit').setAttribute('hidden', 'true')}
window.scrollTo(0,1000000)
})
document.querySelector('.bouton-envoi').addEventListener('click', function(event) {
const emailField = document.querySelector('#email');
// Vérifie si le champ email est vide ou invalide
if (!emailField.value || !emailField.checkValidity()) {
event.preventDefault(); // Empêche la soumission du formulaire
alert('Veuillez renseigner un email valide.');
console.log('Adresse mail non valide')
document.querySelector('#email').style.border = 'solid red 1.5px';
} else {
// Soumettre le formulaire si tout est valide
function mettreAJourAffichage() {
var titre = document.querySelector('#titre').value;
var description = document.querySelector('#description').value;
var artiste = document.querySelector('#artiste').value;
var lienaudio = document.querySelector('#lienaudio').value;
var image = document.querySelector('#image').value;
document.querySelector(".musique-formulaire").innerHTML += `
<section class="proposition">
<img src="${image}" alt="" class="imgChoisie">
<h2>${titre}</h2>
<p>Artiste : <strong> ${artiste} </strong> </p>
<p>${description}</p>
<a href='${lienaudio}' target="_blank"> Lien de la musique proposée <a>
</section>
`;
console.log("Une nouvelle musique a été ajoutée !");
}
// Événement sur le bouton pour afficher les informations
mettreAJourAffichage()
var urlVisitee = 'https://perso-etudiant.u-pem.fr/~gambette/portrait/api.php?format=json&login=lin&courriel=' + document.querySelector('#email').value + '&message='+ document.querySelector('#titre').value + " ; Description transmise : " + document.querySelector('#description').value + " ; Lien de l'audio transmise : " + document.querySelector('#lienaudio').value
console.log(document.querySelector('#titre').value)
console.log("URL générée :", urlVisitee);
// Appeler l'API avec fetch
fetch(urlVisitee).then(function(response) {
response.json().then(function(data){
console.log("Réponse reçue : ");
console.log(data);
});
})
alert('Bien envoyé')
;
document.querySelector('#email').style.border = 'solid blue 1.5px'
}
});
document.querySelector('.clear').addEventListener('click', function(){
document.querySelectorAll('.proposition').forEach(function(valeur){
valeur.remove()
})
})