diff options
author | Andrew Dolgov <[email protected]> | 2019-12-10 08:51:45 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2019-12-10 08:51:45 +0300 |
commit | 560346f9d19f521db1adfbad2cab8c0c61e16cf7 (patch) | |
tree | c17965fa57458148e9c24aa7936a86d9213b6273 /js/Article.js | |
parent | dad3d1c7a9555f484d5c4070d1ad86632372f3ec (diff) |
Article.cdmScrollToId: disable smooth scrolling on repeated events
Diffstat (limited to 'js/Article.js')
-rw-r--r-- | js/Article.js | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/js/Article.js b/js/Article.js index 1b92c2965..78ace5d0b 100644 --- a/js/Article.js +++ b/js/Article.js @@ -275,7 +275,7 @@ define(["dojo/_base/declare"], function (declare) { dialog.show(); }, - cdmScrollToId: function (id, force) { + cdmScrollToId: function (id, force, event) { const ctr = $("headlines-frame"); const e = $("RROW-" + id); @@ -284,6 +284,18 @@ define(["dojo/_base/declare"], function (declare) { if (force || e.offsetTop + e.offsetHeight > (ctr.scrollTop + ctr.offsetHeight) || e.offsetTop < ctr.scrollTop) { + if (event && event.repeat) { + ctr.addClassName("forbid-smooth-scroll"); + window.clearTimeout(this._scroll_reset_timeout); + + this._scroll_reset_timeout = window.setTimeout(() => { + if (ctr) ctr.removeClassName("forbid-smooth-scroll"); + }, 250) + + } else { + ctr.removeClassName("forbid-smooth-scroll"); + } + ctr.scrollTop = e.offsetTop; Element.hide("floatingTitle"); |