]> git.lizzy.rs Git - nhentai.git/blob - nhentai/viewer/scripts.js
0.4.6
[nhentai.git] / nhentai / viewer / 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('list').onclick = event => {
32     if (pages.includes(event.target)) {
33         changePage(pages.indexOf(event.target));
34     }
35 };
36
37 document.getElementById('image-container').onclick = event => {
38     const width = document.getElementById('image-container').clientWidth;
39     const clickPos = event.clientX / width;
40
41     if (clickPos < 0.5) {
42         changePage(currentPage - 1);
43     } else {
44         changePage(currentPage + 1);
45     }
46 };
47
48 document.onkeypress = event => {
49     switch (event.key.toLowerCase()) {
50         // Previous Image
51         case 'w':
52            scrollBy(0, -40);
53            break;
54         case 'a':
55             changePage(currentPage - 1);
56             break;
57         // Return to previous page
58         case 'q':
59             window.history.go(-1);
60             break;
61         // Next Image
62         case ' ':
63         case 's':
64             scrollBy(0, 40);
65             break;
66         case 'd':
67             changePage(currentPage + 1);
68             break;
69     }// remove arrow cause it won't work
70 };
71
72 document.onkeydown = event =>{
73     switch (event.keyCode) {
74         case 37: //left
75             changePage(currentPage - 1);
76             break;
77         case 38: //up
78             break;
79         case 39: //right
80             changePage(currentPage + 1);
81             break;
82         case 40: //down
83             break;
84     }
85 };