rython-task-bot-v2/widget/scripts/header-animation.js
2026-06-10 16:06:26 +10:00

42 lines
951 B
JavaScript

(function () {
const commands = configs.commands;
const titleEl = document.getElementById("title");
let currentIndex = 0;
const DISPLAY_DURATION = 3000; // how long each command stays visible
const FADE_DURATION = 400; // fade in/out duration in ms
function applyTransition() {
titleEl.style.transition = `opacity ${FADE_DURATION}ms ease-in-out`;
}
function fadeOut() {
return new Promise((resolve) => {
titleEl.style.opacity = "0";
setTimeout(resolve, FADE_DURATION);
});
}
function fadeIn() {
return new Promise((resolve) => {
titleEl.style.opacity = "1";
setTimeout(resolve, FADE_DURATION);
});
}
async function cycle() {
await fadeOut();
currentIndex = (currentIndex + 1) % commands.length;
titleEl.textContent = commands[currentIndex];
await fadeIn();
setTimeout(cycle, DISPLAY_DURATION);
}
applyTransition();
titleEl.textContent = commands[0];
setTimeout(cycle, DISPLAY_DURATION);
})();