scroll by pages

jh-changes
Shin'ya Ueoka 7 years ago
parent 02c0cfd97d
commit 20e66ea2c7
  1. 6
      src/background/key-queue.js
  2. 3
      src/content/index.js
  3. 9
      src/content/scrolls.js
  4. 2
      src/shared/actions.js

@ -7,6 +7,12 @@ const DEFAULT_KEYMAP = [
{ keys: [{ code: KeyboardEvent.DOM_VK_O, shift: true }], action: [ actions.CMD_TABS_OPEN, true ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_K }], action: [ actions.SCROLL_LINES, -1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_J }], action: [ actions.SCROLL_LINES, 1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_E, ctrl: true }], action: [ actions.SCROLL_LINES, -1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_Y, ctrl: true }], action: [ actions.SCROLL_LINES, 1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_U, ctrl: true }], action: [ actions.SCROLL_PAGES, -0.5 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_D, ctrl: true }], action: [ actions.SCROLL_PAGES, 0.5 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_B, ctrl: true }], action: [ actions.SCROLL_PAGES, -1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_F, ctrl: true }], action: [ actions.SCROLL_PAGES, 1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_G }, { code: KeyboardEvent.DOM_VK_G }], action: [ actions.SCROLL_TOP ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_G, shift: true }], action: [ actions.SCROLL_BOTTOM ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_D }], action: [ actions.TABS_CLOSE ]},

@ -45,6 +45,9 @@ const invokeEvent = (action) => {
case actions.SCROLL_LINES:
scrolls.scrollLines(window, action[1]);
break;
case actions.SCROLL_PAGES:
scrolls.scrollPages(window, action[1]);
break;
case actions.SCROLL_TOP:
scrolls.scrollTop(window, action[1]);
break;

@ -6,6 +6,13 @@ const scrollLines = (page, count) => {
page.scrollTo(x, y);
};
const scrollPages = (page, count) => {
let height = page.innerHeight;
let x = page.scrollX;
let y = page.scrollY + height * count;
page.scrollTo(x, y);
};
const scrollTop = (page) => {
let x = page.scrollX;
let y = 0;
@ -18,4 +25,4 @@ const scrollBottom = (page) => {
page.scrollTo(x, y);
};
export { scrollLines, scrollTop, scrollBottom }
export { scrollLines, scrollPages, scrollTop, scrollBottom }

@ -6,6 +6,7 @@ export const TABS_PREV = 'tabs.prev';
export const TABS_NEXT = 'tabs.next';
export const TABS_RELOAD = 'tabs.reload';
export const SCROLL_LINES = 'scroll.lines';
export const SCROLL_PAGES = 'scroll.pages';
export const SCROLL_TOP = 'scroll.top';
export const SCROLL_BOTTOM = 'scroll.bottom';
export const FOLLOW_START = 'follow.start';
@ -30,6 +31,7 @@ const CONTENT_ACTION_SET = new Set([
CMD_OPEN,
CMD_TABS_OPEN,
SCROLL_LINES,
SCROLL_PAGES,
SCROLL_TOP,
SCROLL_BOTTOM,
FOLLOW_START,