Skip to content

Commit 420528d

Browse files
committed
click to jump to point
1 parent c22a748 commit 420528d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

js/minimap.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,20 @@ const Minimap = (function() {
8989
dy = (slots[scrollIndex - 1] || 0) * RECT_HEIGHT + scrollIndex * PADDING;
9090
ctx.setTransform( 1, 0, 0, 1, 0, -dy );
9191

92+
// handle click event
93+
if (clicked === true) {
94+
clicked = false;
95+
96+
let y = click * h + dy;
97+
let i = slots.findIndex((d, i) => d * RECT_HEIGHT + i * PADDING >= y);
98+
if (rows[i]) {
99+
document.body.scrollTop = rows[i].ry;
100+
}
101+
else {
102+
document.body.scrollTop = rows[rows.length - 1].ry;
103+
}
104+
}
105+
92106
window.requestAnimationFrame(update);
93107
}
94108

@@ -109,6 +123,13 @@ const Minimap = (function() {
109123
mousedown = false;
110124
}
111125

126+
let clicked = false;
127+
let click = 0;
128+
function onclick(e) {
129+
clicked = true;
130+
click = e.offsetY / e.target.getBoundingClientRect().height;
131+
}
132+
112133
class Minimap {
113134
constructor() {
114135
if (singleton === false) {
@@ -127,6 +148,7 @@ const Minimap = (function() {
127148

128149
// swipe minimap to scroll page
129150
view.onmousedown = onmousedown;
151+
view.onclick = onclick;
130152
document.addEventListener('mousemove', onmousemove);
131153
document.addEventListener('mouseup', onmouseup);
132154
document.addEventListener('mouseleave', onmouseup);

0 commit comments

Comments
 (0)