Modifications pour le document Home

Modifié par Admin le 2026/05/11 09:26

Depuis la version 5.1
modifié par Admin
sur 2026/05/11 09:19
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 7.1
modifié par Admin
sur 2026/05/11 09:24
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -193,6 +193,25 @@
193 193   align-items: center;
194 194   justify-content: center;
195 195  }
196 +
197 +.sound-control {
198 + position: fixed;
199 + bottom: 20px;
200 + right: 20px;
201 + background: rgba(102, 126, 234, 0.8);
202 + color: white;
203 + border: none;
204 + padding: 10px 20px;
205 + border-radius: 30px;
206 + cursor: pointer;
207 + font-size: 16px;
208 + z-index: 1000;
209 + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
210 +}
211 +
212 +.sound-control:hover {
213 + background: rgba(118, 75, 162, 0.9);
214 +}
196 196  </style>
197 197  
198 198  <div class="bouton-container">
... ... @@ -207,8 +207,113 @@
207 207   <div class="ray"></div>
208 208   </div>
209 209  
210 - <a href="https://epn.doc.decalog.net/wiki/epn/view/Guide%20administrateur%20%26%20utilisateur/" class="bouton-guide-multicolore">
211 - Guide Administrateur & Utilisateur
229 + <a href="https://epn.doc.decalog.net/wiki/epn/view/Guide%20administrateur%20%26%20utilisateur/" class="bouton-guide-multicolore" id="hypnoticButton">
230 + 📚 Guide Administrateur & Utilisateur
212 212   </a>
232 +
233 + <button class="sound-control" id="soundToggle">🔊 Son ON</button>
213 213  </div>
235 +
236 +<script>
237 +// Création du contexte audio
238 +const audioContext = new (window.AudioContext || window.webkitAudioContext)();
239 +let oscillator = null;
240 +let gainNode = null;
241 +let isPlaying = false;
242 +let currentDuration = 0.1; // Durée normale de chaque "tu"
243 +let patternTimeout = null;
244 +
245 +function playTututu() {
246 + if (oscillator) return; // Déjà en train de jouer
247 +
248 + oscillator = audioContext.createOscillator();
249 + gainNode = audioContext.createGain();
250 +
251 + oscillator.connect(gainNode);
252 + gainNode.connect(audioContext.destination);
253 +
254 + // Fréquence pour le son "tu"
255 + oscillator.frequency.value = 800;
256 + oscillator.type = 'square'; // Son électronique
257 +
258 + // Volume
259 + gainNode.gain.value = 0.1;
260 +
261 + oscillator.start();
262 + isPlaying = true;
263 +
264 + // Créer l'effet tututututu en modulant la fréquence
265 + schedulePattern();
266 +}
267 +
268 +function schedulePattern() {
269 + if (!isPlaying) return;
270 +
271 + const pattern = [800, 900, 800, 950, 800, 900, 800, 1000];
272 + let time = audioContext.currentTime;
273 +
274 + pattern.forEach((freq, index) => {
275 + if (oscillator) {
276 + oscillator.frequency.setValueAtTime(freq, time + (index * currentDuration));
277 + }
278 + });
279 +
280 + patternTimeout = setTimeout(schedulePattern, pattern.length * currentDuration * 1000);
281 +}
282 +
283 +function stopSound() {
284 + if (oscillator) {
285 + isPlaying = false;
286 + oscillator.stop();
287 + oscillator.disconnect();
288 + oscillator = null;
289 + gainNode.disconnect();
290 + gainNode = null;
291 + }
292 + if (patternTimeout) {
293 + clearTimeout(patternTimeout);
294 + patternTimeout = null;
295 + }
296 +}
297 +
298 +function speedUpSound() {
299 + currentDuration = 0.03; // Super rapide au survol !
300 +}
301 +
302 +function normalizeSound() {
303 + currentDuration = 0.1; // Vitesse normale
304 +}
305 +
306 +// Contrôle du bouton
307 +const soundToggle = document.getElementById('soundToggle');
308 +const hypnoticButton = document.getElementById('hypnoticButton');
309 +let soundEnabled = true;
310 +
311 +soundToggle.addEventListener('click', function() {
312 + soundEnabled = !soundEnabled;
313 + if (soundEnabled) {
314 + playTututu();
315 + soundToggle.textContent = '🔊 Son ON';
316 + } else {
317 + stopSound();
318 + soundToggle.textContent = '🔇 Son OFF';
319 + }
320 +});
321 +
322 +// Événements de survol pour accélérer le son
323 +hypnoticButton.addEventListener('mouseenter', function() {
324 + if (soundEnabled && isPlaying) {
325 + speedUpSound();
326 + }
327 +});
328 +
329 +hypnoticButton.addEventListener('mouseleave', function() {
330 + if (soundEnabled && isPlaying) {
331 + normalizeSound();
332 + }
333 +});
334 +
335 +// Démarrer automatiquement le son
336 +playTututu();
337 +</script>
214 214  {{/html}}