diff options
Diffstat (limited to 'src/views')
-rw-r--r-- | src/views/comments.pug | 35 | ||||
-rw-r--r-- | src/views/media.pug | 9 |
2 files changed, 25 insertions, 19 deletions
diff --git a/src/views/comments.pug b/src/views/comments.pug index 1caf65a..1265609 100644 --- a/src/views/comments.pug +++ b/src/views/comments.pug | |||
@@ -47,23 +47,24 @@ html | |||
47 | h2.post-title | 47 | h2.post-title |
48 | != post.title | 48 | != post.title |
49 | 49 | ||
50 | if isPostGallery(post) | 50 | div.image-viewer.main-content |
51 | div.gallery | 51 | if isPostGallery(post) |
52 | each item in postGalleryItems(post) | 52 | div.gallery |
53 | div.gallery-item | 53 | each item in postGalleryItems(post) |
54 | div.gallery-item-idx | 54 | div.gallery-item |
55 | | #{`${item.idx}/${item.total}`} | 55 | a(href=`/media/${item.url}`) |
56 | a(href=`/media/${item.url}`) | 56 | img(src=item.url loading="lazy") |
57 | img(src=item.url loading="lazy") | 57 | div.gallery-item-idx |
58 | else if isPostImage(post) | 58 | | #{`${item.idx}/${item.total}`} |
59 | a(href=`/media/${post.url}`) | 59 | else if isPostImage(post) |
60 | img(src=post.url).post-media | 60 | a(href=`/media/${post.url}`) |
61 | else if isPostVideo(post) | 61 | img(src=post.url).post-media |
62 | - var url = post.secure_media.reddit_video.dash_url | 62 | else if isPostVideo(post) |
63 | video(controls data-dashjs-player src=`${url}`).post-media | 63 | - var url = post.secure_media.reddit_video.dash_url |
64 | else if isPostLink(post) | 64 | video(controls data-dashjs-player src=`${url}`).post-media |
65 | a(href=post.url) | 65 | else if isPostLink(post) |
66 | | #{post.url} | 66 | a(href=post.url) |
67 | | #{post.domain} ↗ | ||
67 | 68 | ||
68 | if post.selftext_html | 69 | if post.selftext_html |
69 | div.self-text | 70 | div.self-text |
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 | |||
3 | html | 3 | html |
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 |