From 057a0b8a4608939af1208b8946876d849e873d37 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 13 Jan 2018 14:48:53 +0900 Subject: [PATCH] remove window from scrolls --- src/content/actions/operation.js | 14 ++++---- src/content/scrolls.js | 60 ++++++++++++++++---------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/content/actions/operation.js b/src/content/actions/operation.js index 767f14b..8157127 100644 --- a/src/content/actions/operation.js +++ b/src/content/actions/operation.js @@ -24,19 +24,19 @@ const exec = (operation) => { type: messages.FIND_PREV, }), '*'); case operations.SCROLL_VERTICALLY: - return scrolls.scrollVertically(window, operation.count); + return scrolls.scrollVertically(operation.count); case operations.SCROLL_HORIZONALLY: - return scrolls.scrollHorizonally(window, operation.count); + return scrolls.scrollHorizonally(operation.count); case operations.SCROLL_PAGES: - return scrolls.scrollPages(window, operation.count); + return scrolls.scrollPages(operation.count); case operations.SCROLL_TOP: - return scrolls.scrollTop(window); + return scrolls.scrollTop(); case operations.SCROLL_BOTTOM: - return scrolls.scrollBottom(window); + return scrolls.scrollBottom(); case operations.SCROLL_HOME: - return scrolls.scrollHome(window); + return scrolls.scrollHome(); case operations.SCROLL_END: - return scrolls.scrollEnd(window); + return scrolls.scrollEnd(); case operations.FOLLOW_START: return window.top.postMessage(JSON.stringify({ type: messages.FOLLOW_START, diff --git a/src/content/scrolls.js b/src/content/scrolls.js index ef38273..251b222 100644 --- a/src/content/scrolls.js +++ b/src/content/scrolls.js @@ -1,7 +1,7 @@ const SCROLL_DELTA_X = 48; const SCROLL_DELTA_Y = 48; -const isVisible = (win, element) => { +const isVisible = (element) => { let rect = element.getBoundingClientRect(); if (rect.width === 0 || rect.height === 0) { return false; @@ -9,19 +9,19 @@ const isVisible = (win, element) => { if (rect.right < 0 && rect.bottom < 0) { return false; } - if (win.innerWidth < rect.left && win.innerHeight < rect.top) { + if (window.innerWidth < rect.left && window.innerHeight < rect.top) { return false; } - let { display, visibility } = win.getComputedStyle(element); + let { display, visibility } = window.getComputedStyle(element); if (display === 'none' || visibility === 'hidden') { return false; } return true; }; -const isScrollableStyle = (win, element) => { - let { overflowX, overflowY } = win.getComputedStyle(element); +const isScrollableStyle = (element) => { + let { overflowX, overflowY } = window.getComputedStyle(element); return !(overflowX !== 'scroll' && overflowX !== 'auto' && overflowY !== 'scroll' && overflowY !== 'auto'); }; @@ -35,15 +35,15 @@ const isOverflowed = (element) => { // this method is called by each scrolling, and the returned value of this // method is not cached. That does not cause performance issue because in the // most pages, the window is root element i,e, documentElement. -const findScrollable = (win, element) => { - if (isScrollableStyle(win, element) && isOverflowed(element)) { +const findScrollable = (element) => { + if (isScrollableStyle(element) && isOverflowed(element)) { return element; } let children = Array.prototype - .filter.call(element.children, e => isVisible(win, e)); + .filter.call(element.children, e => isVisible(e)); for (let child of children) { - let scrollable = findScrollable(win, child); + let scrollable = findScrollable(child); if (scrollable) { return scrollable; } @@ -51,65 +51,65 @@ const findScrollable = (win, element) => { return null; }; -const scrollTarget = (win) => { - if (isOverflowed(win.document.documentElement)) { - return win.document.documentElement; +const scrollTarget = () => { + if (isOverflowed(window.document.documentElement)) { + return window.document.documentElement; } - if (isOverflowed(win.document.body)) { - return win.document.body; + if (isOverflowed(window.document.body)) { + return window.document.body; } - let target = findScrollable(win, win.document.documentElement); + let target = findScrollable(window.document.documentElement); if (target) { return target; } - return win.document.documentElement; + return window.document.documentElement; }; -const scrollVertically = (win, count) => { - let target = scrollTarget(win); +const scrollVertically = (count) => { + let target = scrollTarget(); let x = target.scrollLeft; let y = target.scrollTop + SCROLL_DELTA_Y * count; target.scrollTo(x, y); }; -const scrollHorizonally = (win, count) => { - let target = scrollTarget(win); +const scrollHorizonally = (count) => { + let target = scrollTarget(); let x = target.scrollLeft + SCROLL_DELTA_X * count; let y = target.scrollTop; target.scrollTo(x, y); }; -const scrollPages = (win, count) => { - let target = scrollTarget(win); +const scrollPages = (count) => { + let target = scrollTarget(); let height = target.clientHeight; let x = target.scrollLeft; let y = target.scrollTop + height * count; target.scrollTo(x, y); }; -const scrollTop = (win) => { - let target = scrollTarget(win); +const scrollTop = () => { + let target = scrollTarget(); let x = target.scrollLeft; let y = 0; target.scrollTo(x, y); }; -const scrollBottom = (win) => { - let target = scrollTarget(win); +const scrollBottom = () => { + let target = scrollTarget(); let x = target.scrollLeft; let y = target.scrollHeight; target.scrollTo(x, y); }; -const scrollHome = (win) => { - let target = scrollTarget(win); +const scrollHome = () => { + let target = scrollTarget(); let x = 0; let y = target.scrollTop; target.scrollTo(x, y); }; -const scrollEnd = (win) => { - let target = scrollTarget(win); +const scrollEnd = () => { + let target = scrollTarget(); let x = target.scrollWidth; let y = target.scrollTop; target.scrollTo(x, y);