From e538968af114375e090e2b7e251e6a6a1bcf8223 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 18 Dec 2023 16:33:43 -0800 Subject: fix(schedule): off-screen clipping --- src/routes/schedule/+page.svelte | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/routes/schedule/+page.svelte b/src/routes/schedule/+page.svelte index b86221b2..9868e308 100644 --- a/src/routes/schedule/+page.svelte +++ b/src/routes/schedule/+page.svelte @@ -13,15 +13,25 @@ let hoveredItem: SubsPleaseEpisode | null = null; let imageStyle = ''; + let imageHeight = 0; const onMouseMove = (event: MouseEvent) => { const imageWidth = 300; const offset = 10; + let imageLeft = 0; + let imageTop = 0; + const image = document.getElementsByClassName('hover-image')[0] as HTMLImageElement; - imageStyle = + image.onload = () => (imageHeight = image.height); + imageLeft = event.pageX + imageWidth + offset > window.innerWidth - ? `top: ${event.pageY + offset}px; left: ${event.pageX - imageWidth - offset}px;` - : `top: ${event.pageY + offset}px; left: ${event.pageX + offset}px;`; + ? event.pageX - imageWidth - offset + : event.pageX + offset; + imageTop = + event.pageY + imageHeight + offset > window.innerHeight + ? event.pageY - imageHeight + : event.pageY + offset; + imageStyle = `top: ${imageTop}px; left: ${imageLeft}px;`; }; -- cgit v1.2.3