aboutsummaryrefslogtreecommitdiff
path: root/src/routes/schedule
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-18 16:33:43 -0800
committerFuwn <[email protected]>2023-12-18 16:33:43 -0800
commite538968af114375e090e2b7e251e6a6a1bcf8223 (patch)
tree92e1301f04cb1babf83be9da76f5a28fcbe5708d /src/routes/schedule
parentfeat(schedule): hoverable cover (diff)
downloaddue.moe-e538968af114375e090e2b7e251e6a6a1bcf8223.tar.xz
due.moe-e538968af114375e090e2b7e251e6a6a1bcf8223.zip
fix(schedule): off-screen clipping
Diffstat (limited to 'src/routes/schedule')
-rw-r--r--src/routes/schedule/+page.svelte16
1 files 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;`;
};
</script>