Add promotional slides with animations to TV stick component

This commit is contained in:
Matt Batchelder
2026-02-21 12:13:10 -05:00
parent 1d49929ed3
commit ef0532ef9b
3 changed files with 116 additions and 1 deletions

View File

@@ -685,6 +685,7 @@ document.addEventListener('DOMContentLoaded', () => {
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
stages.forEach(function (stage) {
stage.classList.add('is-plugged');
startTsSlides(stage);
});
return;
}
@@ -698,6 +699,10 @@ document.addEventListener('DOMContentLoaded', () => {
// Add plugged state after slide-in completes (1.4s)
setTimeout(function () {
stage.classList.add('is-plugged');
// Start promotional slide cycling after screen glow (0.9s)
setTimeout(function () {
startTsSlides(stage);
}, 900);
}, 1400);
io.unobserve(stage);
}
@@ -705,4 +710,17 @@ document.addEventListener('DOMContentLoaded', () => {
}, { threshold: 0.3 });
stages.forEach(function (stage) { io.observe(stage); });
}
function startTsSlides(stage) {
var slides = stage.querySelectorAll('.ts-slide');
if (!slides.length) return;
var current = 0;
slides[0].classList.add('is-active');
stage.classList.add('is-playing');
setInterval(function () {
slides[current].classList.remove('is-active');
current = (current + 1) % slides.length;
slides[current].classList.add('is-active');
}, 3000);
}
})();