]> git.lizzy.rs Git - nhentai.git/blob - nhentai/viewer/minimal/scripts.js
add minimal viewer, fix not using config's template on --html only option
[nhentai.git] / nhentai / viewer / minimal / scripts.js
1 const pages = Array.from(document.querySelectorAll('img.image-item'));
2 let currentPage = 0;
3
4 function changePage(pageNum) {
5     const previous = pages[currentPage];
6     const current = pages[pageNum];
7
8     if (current == null) {
9         return;
10     }
11     
12     previous.classList.remove('current');
13     current.classList.add('current');
14
15     currentPage = pageNum;
16
17     const display = document.getElementById('dest');
18     display.style.backgroundImage = `url("${current.src}")`;
19
20     scroll(0,0)
21
22     document.getElementById('page-num')
23         .innerText = [
24                 (pageNum + 1).toLocaleString(),
25                 pages.length.toLocaleString()
26             ].join('\u200a/\u200a');
27 }
28
29 changePage(0);
30
31 document.getElementById('image-container').onclick = event => {
32     const width = document.getElementById('image-container').clientWidth;
33     const clickPos = event.clientX / width;
34
35     if (clickPos < 0.5) {
36         changePage(currentPage - 1);
37     } else {
38         changePage(currentPage + 1);
39     }
40 };
41
42 document.onkeypress = event => {
43     switch (event.key.toLowerCase()) {
44         // Previous Image
45         case 'w':
46            scrollBy(0, -40);
47            break;
48         case 'a':
49             changePage(currentPage - 1);
50             break;
51         // Return to previous page
52         case 'q':
53             window.history.go(-1);
54             break;
55         // Next Image
56         case ' ':
57         case 's':
58             scrollBy(0, 40);
59             break;
60         case 'd':
61             changePage(currentPage + 1);
62             break;
63     }// remove arrow cause it won't work
64 };
65
66 document.onkeydown = event =>{
67     switch (event.keyCode) {
68         case 37: //left
69             changePage(currentPage - 1);
70             break;
71         case 38: //up
72             break;
73         case 39: //right
74             changePage(currentPage + 1);
75             break;
76         case 40: //down
77             break;
78     }
79 };