Weiter gebaut
Some checks failed
Host-Based Deploy (Java 21 Fix) / build-and-run (push) Has been cancelled
Some checks failed
Host-Based Deploy (Java 21 Fix) / build-and-run (push) Has been cancelled
This commit is contained in:
@@ -119,15 +119,16 @@ document.addEventListener('click', e => {
|
||||
});
|
||||
|
||||
// ── Bild-Karussell (Lightbox/Detail-Ansicht) ─────────────────────────────────
|
||||
function bilderCarousel(bilder) {
|
||||
function bilderCarousel(bilder, initialIdx = 0) {
|
||||
if (!bilder || bilder.length === 0) return '';
|
||||
const idx = Math.max(0, Math.min(initialIdx, bilder.length - 1));
|
||||
const slides = bilder.map((b, i) =>
|
||||
`<div class="car-slide${i === 0 ? ' active' : ''}"><img class="post-bild" src="data:image/jpeg;base64,${b}" alt=""></div>`
|
||||
`<div class="car-slide${i === idx ? ' active' : ''}"><img class="post-bild" src="data:image/jpeg;base64,${b}" alt=""></div>`
|
||||
).join('');
|
||||
const nav = bilder.length > 1
|
||||
? `<button class="car-btn car-prev" onclick="event.stopPropagation();carNav(this,-1)">‹</button>
|
||||
<button class="car-btn car-next" onclick="event.stopPropagation();carNav(this,1)">›</button>
|
||||
<div class="car-indicator"><span class="car-cur">1</span> / ${bilder.length}</div>`
|
||||
<div class="car-indicator"><span class="car-cur">${idx + 1}</span> / ${bilder.length}</div>`
|
||||
: '';
|
||||
return `<div class="post-carousel">${slides}${nav}</div>`;
|
||||
}
|
||||
@@ -138,6 +139,8 @@ function bilderCarousel(bilder) {
|
||||
* – Post-Text bekommt scrollbare Höhenbegrenzung
|
||||
*/
|
||||
function _lbSetupContent(postId, prefix, bilder) {
|
||||
const initialIdx = window.__pigNextIdx != null ? window.__pigNextIdx : 0;
|
||||
window.__pigNextIdx = null;
|
||||
const body = document.getElementById('lbPostBody');
|
||||
const va = body.querySelector(`#${prefix}va-${postId}`);
|
||||
if (va) va.classList.add('lb-va');
|
||||
@@ -146,7 +149,7 @@ function _lbSetupContent(postId, prefix, bilder) {
|
||||
if (pbi) {
|
||||
if (hasImages) {
|
||||
pbi.classList.add('lb-ic');
|
||||
pbi.innerHTML = bilderCarousel(bilder);
|
||||
pbi.innerHTML = bilderCarousel(bilder, initialIdx);
|
||||
} else {
|
||||
pbi.style.display = 'none';
|
||||
}
|
||||
@@ -229,6 +232,16 @@ function _pigInit(id, probe) {
|
||||
`<div class="pig-item"><img src="data:image/jpeg;base64,${bilder[2]}" alt="">${moreHtml}</div>`);
|
||||
}
|
||||
}
|
||||
|
||||
// Click-Listener: angeklicktes Bild als Startindex für die Lightbox merken
|
||||
grid.querySelectorAll('.pig-item').forEach((item, idx) => {
|
||||
item.style.cursor = 'pointer';
|
||||
item.addEventListener('click', e => {
|
||||
e.stopPropagation();
|
||||
window.__pigNextIdx = idx;
|
||||
item.closest('.post-card')?.click();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function carNav(btn, dir) {
|
||||
|
||||
Reference in New Issue
Block a user