Add promotional slides with animations to TV stick component
This commit is contained in:
@@ -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);
|
||||
}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user