summaryrefslogtreecommitdiff
path: root/client/js/views/endless_page_view.js
diff options
context:
space:
mode:
authorrr- <rr-@sakuya.pl>2017-02-26 12:57:24 +0100
committerrr- <rr-@sakuya.pl>2017-02-26 12:57:24 +0100
commit87b3572ce594636ea57302cbe4f93c2d50ff39c0 (patch)
treee7c7c97f0a8ec86e6213054d3a8ee7ce60e032f2 /client/js/views/endless_page_view.js
parent5467ca6b7e259f489927c51ad5ab00ef4835e1c2 (diff)
client/paging: fix endless scroll on android
Diffstat (limited to 'client/js/views/endless_page_view.js')
-rw-r--r--client/js/views/endless_page_view.js17
1 files changed, 9 insertions, 8 deletions
diff --git a/client/js/views/endless_page_view.js b/client/js/views/endless_page_view.js
index 93fb520..ab40662 100644
--- a/client/js/views/endless_page_view.js
+++ b/client/js/views/endless_page_view.js
@@ -6,11 +6,15 @@ const views = require('../util/views.js');
const holderTemplate = views.getTemplate('endless-pager');
const pageTemplate = views.getTemplate('endless-pager-page');
-function isScrolledIntoView(el) {
- const elemTop = el.getBoundingClientRect().top;
- const elemBottom = el.getBoundingClientRect().bottom;
- const isVisible = (elemTop >= 0) && (elemBottom <= window.innerHeight);
- return isVisible;
+function isScrolledIntoView(element) {
+ let top = 0;
+ do {
+ top += element.offsetTop || 0;
+ element = element.offsetParent;
+ } while(element);
+ return (
+ (top >= window.scrollY) &&
+ (top <= window.scrollY + window.innerHeight));
}
class EndlessPageView {
@@ -110,9 +114,6 @@ class EndlessPageView {
if (this.totalRecords === null) {
return;
}
- let scrollHeight =
- document.documentElement.scrollHeight -
- document.documentElement.clientHeight;
if (this.minOffsetShown > 0 &&
isScrolledIntoView(this.topPageGuardNode)) {