diff options
| author | rr- <rr-@sakuya.pl> | 2017-02-26 12:57:24 +0100 |
|---|---|---|
| committer | rr- <rr-@sakuya.pl> | 2017-02-26 12:57:24 +0100 |
| commit | 87b3572ce594636ea57302cbe4f93c2d50ff39c0 (patch) | |
| tree | e7c7c97f0a8ec86e6213054d3a8ee7ce60e032f2 /client/js/views/endless_page_view.js | |
| parent | 5467ca6b7e259f489927c51ad5ab00ef4835e1c2 (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.js | 17 |
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)) { |