aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPortableProgrammer <[email protected]>2025-01-11 20:11:28 +0000
committerPortableProgrammer <[email protected]>2025-01-22 15:01:56 +0000
commit7e73b06afc434fe6a62166ead138345010c22b8e (patch)
tree7e1cf4596d576c86437d27981c8da38a89ce66cb
parent6cd1bd918531de368605447c3f9a1495cd8dbe1c (diff)
Media View: scroll to pointer when zooming.
-rw-r--r--src/views/media.pug9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/views/media.pug b/src/views/media.pug
index e945704..3a59542 100644
--- a/src/views/media.pug
+++ b/src/views/media.pug
@@ -3,13 +3,18 @@ doctype html
3html 3html
4 +head("home") 4 +head("home")
5 script(type='text/javascript'). 5 script(type='text/javascript').
6 function toggleZoom() { 6 function toggleZoom(event) {
7 const percentX = event.offsetX / event.target.width;
8 const percentY = event.offsetY / event.target.height;
7 Array.from(document.getElementsByClassName('media-maximized')).forEach(element => element.classList.toggle('zoom')); 9 Array.from(document.getElementsByClassName('media-maximized')).forEach(element => element.classList.toggle('zoom'));
10 const moveClientX = (event.target.width * percentX) + event.target.offsetLeft - (event.view.visualViewport.width / 2)
11 const moveClientY = (event.target.height * percentY) + event.target.offsetTop - (event.view.visualViewport.height / 2);
12 event.target.parentElement.scrollTo(moveClientX, moveClientY);
8 } 13 }
9 14
10 body.media-maximized 15 body.media-maximized
11 div.media-maximized.container 16 div.media-maximized.container
12 if kind == 'img' 17 if kind == 'img'
13 img(src=url onclick=`toggleZoom()`).media-maximized 18 img(src=url onclick=`toggleZoom(event)`).media-maximized
14 else 19 else
15 video(src=url controls).media-maximized 20 video(src=url controls).media-maximized