/* === ANIMATION TITRE-NAV (toutes les pages) === */
function animerTitreNav() {
document.querySelectorAll('.fenetre-nom').forEach(el => {
el.innerHTML = el.textContent.split('').map((c, i) => {
if (c === ' ') return ' ';
const delayColor = (i * 0.3).toFixed(1);
const delayLevite = (Math.random() * 4).toFixed(2);
const duree = (3 + Math.random() * 3).toFixed(2);
return `${c}`;
}).join('');
});
}
/* === /NOW (index.html) === */
function afficherNow() {
const phrasesNow = [
"/now : faut que je fasses les courses.",
"/now : les arbres vibrent !",
"/now : les mains, les jambes, avancent..",
"/now : lave toi le visage.",
"/now : il pleut, et c'est très bien comme ça.",
"/now : pas mal la page d'accueil !",
"/now : i love my computer",
"/now : demain je serais en cours, j'espère",
"/now : je resterais auprès de toi pour toujours",
"/now : je serais toi j'irais prendre l'air",
"/now : je dois vraiment aller dormir la"
];
const spanNow = document.querySelector('.now');
if (spanNow) {
const indexAleatoire = Math.floor(Math.random() * phrasesNow.length);
spanNow.textContent = phrasesNow[indexAleatoire];
}
}
/* === GRILLE ALBUMS (reviews/index.html) === */
function toSlug(titre) {
return titre
.toLowerCase()
.normalize('NFD').replace(/[\u0300-\u036f]/g, '')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/g, '');
}
function chargerAlbums() {
fetch('data/albums.json')
.then(r => r.json())
.then(albums => {
const grille = document.getElementById('grille');
albums.forEach(album => {
const carte = document.createElement('div');
carte.className = 'carte';
const media = album.cover
? ``
: `
aucune dépêche pour l\'instant.
'; return; } for (const d of depeches) { const el = document.createElement('div'); el.className = 'depeche'; const texteHtml = await parseTexte(d.texte); const img = d.image ? `impossible de charger les dépêches.
'; } } /* === LIGHTBOX (images dans les entrées) === */ function initLightbox() { const contenu = document.querySelector('.fenetre-contenu'); if (!contenu) return; contenu.addEventListener('click', e => { const img = e.target.closest('img:not(.thanks)'); if (!img) return; const overlay = document.createElement('div'); overlay.className = 'lightbox'; const fond = document.createElement('div'); fond.className = 'lightbox-fond'; overlay.appendChild(fond); const clone = document.createElement('img'); clone.className = 'lightbox-image'; clone.src = img.src; clone.alt = img.alt; overlay.appendChild(clone); const fermer = document.createElement('button'); fermer.className = 'lightbox-fermer'; fermer.innerHTML = '×'; overlay.appendChild(fermer); document.body.appendChild(overlay); overlay.addEventListener('click', e => { if (e.target === fond || e.target === fermer || e.target === overlay) { overlay.remove(); } }); document.addEventListener('keydown', function onKey(e) { if (e.key === 'Escape') { overlay.remove(); document.removeEventListener('keydown', onKey); } }); }); } /* === INIT === */ document.addEventListener('DOMContentLoaded', () => { animerTitreNav(); if (document.querySelector('.now')) { afficherNow(); } if (document.getElementById('grille')) { chargerAlbums(); } if (document.getElementById('feed')) { chargerDepeches(); } initLightbox(); });