diff options
| author | Bobby <[email protected]> | 2024-12-21 00:46:45 -0500 |
|---|---|---|
| committer | Bobby <[email protected]> | 2024-12-21 00:46:45 -0500 |
| commit | b453706835fcb5fe960375c7101074f3bb9c1c7a (patch) | |
| tree | 34e3a2e9a6202c032c7703dc9adbb12f530aed70 /static/js/shared | |
| parent | 70bd8ebf6e0de202cb3a4f52f39766e69f146053 (diff) | |
| download | thatcomputerscientist-b453706835fcb5fe960375c7101074f3bb9c1c7a.tar.xz thatcomputerscientist-b453706835fcb5fe960375c7101074f3bb9c1c7a.zip | |
anime stream pages
Diffstat (limited to 'static/js/shared')
| -rw-r--r-- | static/js/shared/animeList.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/static/js/shared/animeList.js b/static/js/shared/animeList.js new file mode 100644 index 00000000..2d2526b0 --- /dev/null +++ b/static/js/shared/animeList.js @@ -0,0 +1,45 @@ +document.querySelectorAll('.anime-card').forEach(card => { + const hoverCard = card.querySelector('.anime-hover-card'); + + card.addEventListener('mouseenter', (e) => { + positionHoverCard(e, hoverCard); + hoverCard.style.opacity = '1'; + hoverCard.style.visibility = 'visible'; + }); + + card.addEventListener('mousemove', (e) => { + positionHoverCard(e, hoverCard); + }); + + card.addEventListener('mouseleave', () => { + hoverCard.style.opacity = '0'; + hoverCard.style.visibility = 'hidden'; + }); +}); + +function positionHoverCard(e, hoverCard) { + const mouseX = e.clientX; + const mouseY = e.clientY; + const viewportWidth = window.innerWidth; + const viewportHeight = window.innerHeight; + const cardWidth = 400; + const cardHeight = hoverCard.offsetHeight; + + // Calculate position, keeping card within viewport + let left = mouseX + 20; // 20px offset from cursor + let top = mouseY + 20; + + // Adjust if card would overflow right side + if (left + cardWidth > viewportWidth) { + left = mouseX - cardWidth - 20; + } + + // Adjust if card would overflow bottom + if (top + cardHeight > viewportHeight) { + top = mouseY - cardHeight - 20; + } + + // Apply position + hoverCard.style.left = `${left}px`; + hoverCard.style.top = `${top}px`; +}
\ No newline at end of file |
