diff --git a/src/assets/css/index.css b/src/assets/css/index.css
index f345dfcc..3c704d1a 100644
--- a/src/assets/css/index.css
+++ b/src/assets/css/index.css
@@ -428,18 +428,15 @@ input[type="range"].styled-slider.slider-progress::-ms-fill-lower {
@apply brightness-[500];
}
-/* Image fade-in on load */
-img:not([src=""]) {
+img:not(.no-fade):not([src=""]) {
opacity: 0;
transition: opacity 0.8s ease-in-out;
}
-/* Fade in when image has loaded class */
-img.loaded {
+img.loaded:not(.no-fade) {
opacity: 1;
}
-/* For images that are already cached/loaded, show them immediately */
-img[complete]:not([src=""]) {
+img[complete]:not(.no-fade):not([src=""]) {
opacity: 1;
}
diff --git a/src/components/player/atoms/ProgressBar.tsx b/src/components/player/atoms/ProgressBar.tsx
index 90b91dcc..0c15fd82 100644
--- a/src/components/player/atoms/ProgressBar.tsx
+++ b/src/components/player/atoms/ProgressBar.tsx
@@ -59,7 +59,7 @@ function ThumbnailDisplay(props: { at: number; show: boolean }) {
{currentThumbnail && (
)}
diff --git a/src/components/player/internals/KeyboardEvents.tsx b/src/components/player/internals/KeyboardEvents.tsx index 3fcb6404..627c3edb 100644 --- a/src/components/player/internals/KeyboardEvents.tsx +++ b/src/components/player/internals/KeyboardEvents.tsx @@ -178,7 +178,7 @@ export function KeyboardEvents() { if (evt.repeat) { return; } - + // Skip if a button is targeted if ( evt.target && @@ -243,7 +243,7 @@ export function KeyboardEvents() { if (evt.repeat) { return; } - + // Skip if a button is targeted if ( evt.target && diff --git a/src/setup/imageFadeIn.ts b/src/setup/imageFadeIn.ts index 79e779d9..158f2031 100644 --- a/src/setup/imageFadeIn.ts +++ b/src/setup/imageFadeIn.ts @@ -5,7 +5,7 @@ export function initializeImageFadeIn() { // Handle images that are already loaded (cached) const handleExistingImages = () => { - const images = document.querySelectorAll("img:not(.loaded)"); + const images = document.querySelectorAll(`img:not(.no-fade):not([src=""]`); images.forEach((img) => { const htmlImg = img as HTMLImageElement; if (htmlImg.complete && htmlImg.naturalHeight !== 0) { @@ -35,7 +35,7 @@ export function initializeImageFadeIn() { // Also check periodically for images that might have loaded // This handles edge cases where the load event might not fire const checkInterval = setInterval(() => { - const images = document.querySelectorAll("img:not(.loaded)"); + const images = document.querySelectorAll(`img:not(.no-fade):not([src=""]`); if (images.length === 0) { clearInterval(checkInterval); return;