Foto-Collage (Polaroid-Scrapbook) für Dogfather & Casper auf der Startseite

This commit is contained in:
2026-07-30 21:18:15 +02:00
parent 81fecc7c11
commit c1d6e8f136
2 changed files with 118 additions and 0 deletions
+47
View File
@@ -63,6 +63,37 @@
</div>
</section>
<!-- ================= FOTO-COLLAGE: DOGFATHER & CASPER ================= -->
<section class="section-tight">
<div class="container text-center">
<span class="eyebrow">🩵 Gesichter hinter dem Universum</span>
<h2>Dogfather &amp; Casper</h2>
<div class="collage-wrap" id="collage-wrap">
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather" src="assets/img/dogfather-portrait.jpg" alt="Dogfather"></div>
<p class="collage-caption">Dogfather 🩵</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Casper" src="assets/img/casper-1.jpg" alt="Casper"></div>
<p class="collage-caption">Casper 🐾</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather &amp; Casper" src="assets/img/dogfather-casper-1.jpg" alt="Dogfather und Casper zusammen"></div>
<p class="collage-caption">Team 🩵🐾</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Casper" src="assets/img/casper-2.jpg" alt="Casper"></div>
<p class="collage-caption">Husky-Life</p>
</div>
<div class="collage-item">
<div class="collage-photo"><img class="collage-img" data-fallback="Dogfather" src="assets/img/dogfather-portrait-2.jpg" alt="Dogfather"></div>
<p class="collage-caption">Behind the Cam</p>
</div>
</div>
<p class="small muted" style="max-width:50ch;margin:0 auto;">Echte Fotos folgen — sobald sie da sind, erscheinen sie hier automatisch in genau diesem Collagen-Look.</p>
</div>
</section>
<!-- ================= STATS ================= -->
<section class="section-tight">
<div class="container">
@@ -172,6 +203,22 @@
const API_BASE_URL = "https://dogfather-universe-postfach.dogfather1608.workers.dev";
document.addEventListener("DOMContentLoaded", () => {
// Foto-Collage: solange echte Fotos fehlen, hübschen Platzhalter statt
// kaputtem Bild-Icon zeigen. Sobald ein Foto unter dem passenden Pfad
// (assets/img/dogfather-portrait.jpg etc.) liegt, taucht es automatisch auf.
document.querySelectorAll(".collage-img").forEach((img) => {
img.addEventListener(
"error",
() => {
const div = document.createElement("div");
div.className = "img-placeholder";
div.innerHTML = `${img.dataset.fallback}<br><span class="small">Foto folgt</span>`;
img.replaceWith(div);
},
{ once: true }
);
});
// Live-Status: grüner Punkt, wenn Dogfather gerade live ist
const liveDot = document.getElementById("live-dot");
const liveText = document.getElementById("live-text");