diff options
author | Devlin Junker <devlin.junker@gmail.com> | 2022-11-09 21:52:11 -0800 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2022-11-17 14:50:53 +0100 |
commit | c6b4bcc00e5202e85388a0624d149e8b1df386f8 (patch) | |
tree | 7063a29710dfd0a363f3462fee8a0e8185488e15 /js-old/directive | |
parent | 760c44288256b104b662ade7a892a6ec0b898851 (diff) |
upmerging master into vue-rewrite
Signed-off-by: Devlin Junker <devlin.junker@gmail.com>
Diffstat (limited to 'js-old/directive')
-rw-r--r-- | js-old/directive/NewsScroll.js | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/js-old/directive/NewsScroll.js b/js-old/directive/NewsScroll.js index 44271b72b..a5e620b80 100644 --- a/js-old/directive/NewsScroll.js +++ b/js-old/directive/NewsScroll.js @@ -8,10 +8,19 @@ * @copyright Bernhard Posselt 2014 */ app.directive('newsScroll', function ($timeout, ITEM_AUTO_PAGE_SIZE, - MARK_READ_TIMEOUT, SCROLL_TIMEOUT) { + MARK_READ_TIMEOUT, SCROLL_TIMEOUT, NC_MAJOR_VERSION) { 'use strict'; var timer; + + var scrollElement = function() { + // This should be in sync with the same function in js/gui/KeyboardShortcuts.js + if (NC_MAJOR_VERSION >= 25) { + return $('#app-content'); + } + return $(window); + }; + // autopaging var autoPage = function (limit, elem, scope) { var counter = 0; @@ -49,8 +58,7 @@ app.directive('newsScroll', function ($timeout, ITEM_AUTO_PAGE_SIZE, articles.forEach(function(article) { // distance to top + height var distTop = article.offsetTop + article.offsetHeight; - var scrollTop = window.pageYOffset || - document.documentElement.scrollTop; + var scrollTop = window.pageYOffset || scrollElement().scrollTop(); if (distTop < scrollTop) { ids.push(parseInt(article.dataset.id, 10)); } else { @@ -100,11 +108,11 @@ app.directive('newsScroll', function ($timeout, ITEM_AUTO_PAGE_SIZE, } }; - $(document).on('scroll', scrollHandler); + scrollElement().on('scroll', scrollHandler); // remove scroll handler if element is destroyed scope.$on('$destroy', function () { - $(document).off('scroll', scrollHandler); + scrollElement().off('scroll', scrollHandler); }); } }; |