From f06358439f6bbc5ba2ed848be40f22c360981dfe Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 19 Sep 2025 16:18:36 -0400 Subject: [PATCH] Making things look good. Now with scroll to top and bottom for Journals and Events. --- src/lib/e_app_sys_menu.svelte | 2 + src/routes/events/+layout.svelte | 242 ++++++++++++++++++++--------- src/routes/journals/+layout.svelte | 144 ++++++++++++----- 3 files changed, 279 insertions(+), 109 deletions(-) diff --git a/src/lib/e_app_sys_menu.svelte b/src/lib/e_app_sys_menu.svelte index 75a17295..5c17909b 100644 --- a/src/lib/e_app_sys_menu.svelte +++ b/src/lib/e_app_sys_menu.svelte @@ -173,7 +173,9 @@ max-w-max --> {/if} {#if $ae_loc?.user_id} +
diff --git a/src/routes/events/+layout.svelte b/src/routes/events/+layout.svelte index c69a33fa..46eda19c 100644 --- a/src/routes/events/+layout.svelte +++ b/src/routes/events/+layout.svelte @@ -119,6 +119,32 @@ if (browser) { // } // } +let nav_y_height = $state(0); + +let box: any; +let xLeft = $state(0); +let xScroll = $state(0); +let xWidth = $state(0); +let yTop = $state(0); +let yScroll = $state(0); +let yHeight = $state(0); + +let scroll_y = $state(0); + +function parse_scroll() { + // console.log(`parse_scroll() called`); + xLeft = box.scrollLeft; + xScroll = box.scrollWidth; + xWidth = box.clientWidth; + yTop = box.scrollTop; + yHeight = box.clientHeight; + yScroll = box.scrollHeight; + // console.log(`parse_scroll() called: ${yTop}`); +} + +function scroll_container() { + return document.getElementById('ae_main_content') || document.documentElement || document.body; +} @@ -141,12 +167,18 @@ if (browser) {
250} class=" submenu - flex flex-col sm:flex-row flex-wrap + z-20 + hover:opacity-100 + absolute top-0 left-0 right-0 + w-full max-w-7xl + min-h-12 md:min-h-20 + p-1 px-2 pb-2 m-auto + + flex flex-col sm:flex-row sm:flex-wrap items-center justify-between gap-1 - border-b-2 - p-1 - px-2 - pb-2 + + border-b-2 rounded-b-lg + + bg-gray-200 dark:bg-gray-800 + + transition-all duration-1000 " > @@ -176,6 +219,7 @@ if (browser) { Æ Events + {nav_y_height} {#if !$ae_sess?.disable_sys_header} 50 && nav_y_height <= 100} + class:pt-32={nav_y_height > 100 && nav_y_height <= 150} + class:pt-40={nav_y_height > 150 && nav_y_height <= 200} class=" - main_content grow px-1 md:px-2 lg:px-4 pb-32 + main_content + grow + px-1 md:px-2 lg:px-4 + pb-48 flex flex-col gap-1 items-center justify-start " > - - - - - - - - - - - {@render children?.()} - - - - - - - - -{#if !$ae_sess?.disable_sys_footer} - -
+ +{#if !$ae_sess?.disable_sys_footer} +
250} + class=" + footer + z-20 + hover:opacity-100 + absolute bottom-0 left-0 right-0 + w-full max-w-7xl + p-1 m-auto + + flex flex-row flex-wrap + items-center justify-between sm:flex-row md:items-center md:justify-between + gap-1 + + border-t-2 border-gray-200 dark:border-gray-600 + rounded-t-lg + bg-gray-200 dark:bg-gray-800 + text-xs hover:text-base - shadow - bg-gray-200 border-t border-gray-200 - dark:bg-gray-800 dark:border-gray-600 - opacity-50 hover:opacity-100 + transition-all duration-1000 " class:ae_debug={$ae_loc.debug} @@ -287,9 +388,8 @@ if (browser) { class_li="grow flex flex-row justify-between" /> - +
{/if}
- diff --git a/src/routes/journals/+layout.svelte b/src/routes/journals/+layout.svelte index 04b53a6b..441eed84 100644 --- a/src/routes/journals/+layout.svelte +++ b/src/routes/journals/+layout.svelte @@ -65,6 +65,7 @@ $journals_slct.journal_obj_li = ae_acct.slct.journal_obj_li; // console.log($journals_slct.journal_obj_li); // }; +let nav_y_height = $state(0); let box: any; let xLeft = $state(0); @@ -108,7 +109,11 @@ function scroll_container() { onscroll={parse_scroll} class:iframe={$ae_loc?.iframe} class=" - ae_journals h-full max-h-full max-w-6xl overflow-auto flex flex-col gap-1 m-auto + ae_journals + h-full max-h-full max-w-7xl + overflow-auto + flex flex-col gap-1 + m-auto bg-gray-50 dark:bg-gray-900 text-gray-800 dark:text-gray-200 @@ -117,6 +122,7 @@ function scroll_container() {