From d62465179034e6e6ee1626bf6793954e9ec9267b Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:01:46 +0800 Subject: [PATCH] feat(web): add sticky header with logo --- web/src/lib/Figure.svelte | 2 +- web/src/routes/+page.svelte | 72 ++++++++++++++++++++++++++++--------- 2 files changed, 57 insertions(+), 17 deletions(-) diff --git a/web/src/lib/Figure.svelte b/web/src/lib/Figure.svelte index c931c57..b3c229b 100644 --- a/web/src/lib/Figure.svelte +++ b/web/src/lib/Figure.svelte @@ -89,7 +89,7 @@ } -
+
diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index fb5d893..65056a0 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -6,6 +6,8 @@ import { PUBLIC_API_ENDPOINT } from '$env/static/public'; import FacetFilter from '$lib/components/FacetFilter.svelte'; import { formatDistanceToNow } from 'date-fns'; + import Logo from '$lib/components/Logo.svelte'; + import { onMount } from 'svelte'; let searchString = ''; /** @@ -50,6 +52,30 @@ let facetCounts: Facet[] | null = null; + let isScrolled = false; + let headerElement: HTMLElement; + + // 添加一个计算属性来生成输入框的类名 + $: inputClasses = `w-full p-2 text-lg border-gray-500 transition-all duration-300 ${ + !isScrolled ? 'mt-4' : '' + }`; + + onMount(() => { + const handleScroll = () => { + if (window.scrollY > 200) { + isScrolled = true; + } else if (isScrolled && window.scrollY < 50) { + isScrolled = false; + } + }; + + window.addEventListener('scroll', handleScroll); + + return () => { + window.removeEventListener('scroll', handleScroll); + }; + }); + async function searchItems( query: string, start: number, @@ -219,18 +245,32 @@ -
- -
- - +
+
+ + +
+
+ + +
+
-
+ + + +
@@ -302,7 +342,7 @@ {:else if searchString}

No results found.

{:else} -

Type something to start searching...

+

{/if}
@@ -327,13 +367,13 @@ /> {/if} - \ No newline at end of file