diff --git a/src/lib/components/HeroCarousel/HeroBackground.svelte b/src/lib/components/HeroCarousel/HeroBackground.svelte index c6babb9..4b1f177 100644 --- a/src/lib/components/HeroCarousel/HeroBackground.svelte +++ b/src/lib/components/HeroCarousel/HeroBackground.svelte @@ -2,9 +2,13 @@ import { PLATFORM_TV } from '../../constants'; import { fade } from 'svelte/transition'; import { cubicIn, cubicOut } from 'svelte/easing'; + import classNames from 'classnames'; + import { onDestroy } from 'svelte'; export let urls: Promise; export let index: number; + let visibleIndex = -1; + let visibleIndexTimeout: ReturnType; let htmlElements: HTMLDivElement[] = []; $: { @@ -12,20 +16,32 @@ htmlElements[index]?.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } + $: { + if (visibleIndexTimeout) { + clearTimeout(visibleIndexTimeout); + } + visibleIndex = -1; + visibleIndexTimeout = setTimeout(() => { + visibleIndex = index; + }, 500); + } + + onDestroy(() => visibleIndexTimeout && clearTimeout(visibleIndexTimeout));
{#if PLATFORM_TV} {#await urls then urls} - {#key index} + {#each urls as url, i}
-
- {/key} + {/each} +
{/await} {:else}