Auto commit: 2026-02-15T03:11:24.010Z
This commit is contained in:
parent
c7559d5109
commit
f980b7c4ad
19
index.php
19
index.php
@ -112,6 +112,18 @@ $liveIndex = get_live_index($schedule);
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes shake {
|
||||||
|
0% { transform: translate(0, 0); }
|
||||||
|
25% { transform: translate(-8px, 8px); }
|
||||||
|
50% { transform: translate(8px, -8px); }
|
||||||
|
75% { transform: translate(-8px, -8px); }
|
||||||
|
100% { transform: translate(0, 0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.shake {
|
||||||
|
animation: shake 0.15s cubic-bezier(.36,.07,.19,.97) both;
|
||||||
|
}
|
||||||
|
|
||||||
.background-container {
|
.background-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -707,6 +719,7 @@ $liveIndex = get_live_index($schedule);
|
|||||||
const playIcon = document.getElementById("play-icon");
|
const playIcon = document.getElementById("play-icon");
|
||||||
const trackTitle = document.getElementById("track-title");
|
const trackTitle = document.getElementById("track-title");
|
||||||
const bgContainer = document.querySelector(".background-container");
|
const bgContainer = document.querySelector(".background-container");
|
||||||
|
const appContainer = document.querySelector(".app-container");
|
||||||
const canvas = document.getElementById("visualizer");
|
const canvas = document.getElementById("visualizer");
|
||||||
const canvasCtx = canvas.getContext("2d");
|
const canvasCtx = canvas.getContext("2d");
|
||||||
|
|
||||||
@ -782,6 +795,12 @@ $liveIndex = get_live_index($schedule);
|
|||||||
const flashColor = useWhite ? "#ffffff" : getComplementaryColor(waveColor);
|
const flashColor = useWhite ? "#ffffff" : getComplementaryColor(waveColor);
|
||||||
document.documentElement.style.setProperty("--flash-color", flashColor);
|
document.documentElement.style.setProperty("--flash-color", flashColor);
|
||||||
flashEl.style.opacity = "0.3";
|
flashEl.style.opacity = "0.3";
|
||||||
|
|
||||||
|
// Shake UI effect
|
||||||
|
appContainer.classList.remove("shake");
|
||||||
|
void appContainer.offsetWidth; // Trigger reflow
|
||||||
|
appContainer.classList.add("shake");
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
flashEl.style.transition = "opacity 0.4s ease-out";
|
flashEl.style.transition = "opacity 0.4s ease-out";
|
||||||
flashEl.style.opacity = "0";
|
flashEl.style.opacity = "0";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user