diff options
author | Andrew Dolgov <[email protected]> | 2020-05-19 08:07:23 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2020-05-19 08:07:23 +0300 |
commit | 2deb9c555e31ec36b430f69a1ff673d648b8cf4a (patch) | |
tree | 040d041e1df4fbef1aa0ca09c1e68d93fbbb3602 /js | |
parent | 8dc6b48ebd73b865c18e261a28f0e97ad304a39b (diff) |
Headlines.move: use requestAnimationFrame in CDM :(
Diffstat (limited to 'js')
-rwxr-xr-x | js/Headlines.js | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/js/Headlines.js b/js/Headlines.js index ba0f565da..d8abf74ea 100755 --- a/js/Headlines.js +++ b/js/Headlines.js @@ -832,8 +832,10 @@ define(["dojo/_base/declare"], function (declare) { if (mode === "next") { if (next_id) { if (App.isCombinedMode()) { - Article.setActive(next_id); - Article.cdmMoveToId(next_id, {event: event, noscroll: noscroll}); + window.requestAnimationFrame(() => { + Article.setActive(next_id); + Article.cdmMoveToId(next_id, {event: event, noscroll: noscroll}); + }); } else { Article.view(next_id, noexpand); } @@ -841,19 +843,19 @@ define(["dojo/_base/declare"], function (declare) { } else if (mode === "prev") { if (prev_id || current_id) { if (App.isCombinedMode()) { - - const row = $("RROW-" + current_id); - const ctr = $("headlines-frame"); - const delta_px = Math.max(row.offsetTop, ctr.scrollTop) - Math.min(row.offsetTop, ctr.scrollTop); - - if (row && delta_px > 16) { - Article.setActive(current_id); - Article.cdmMoveToId(current_id, {force: noscroll, event: event}); - } else if (prev_id) { - Article.setActive(prev_id); - Article.cdmMoveToId(prev_id, {force: noscroll, event: event, noscroll: noscroll}); - } - + window.requestAnimationFrame(() => { + const row = $("RROW-" + current_id); + const ctr = $("headlines-frame"); + const delta_px = Math.max(row.offsetTop, ctr.scrollTop) - Math.min(row.offsetTop, ctr.scrollTop); + + if (row && delta_px > 16) { + Article.setActive(current_id); + Article.cdmMoveToId(current_id, {force: noscroll, event: event}); + } else if (prev_id) { + Article.setActive(prev_id); + Article.cdmMoveToId(prev_id, {force: noscroll, event: event, noscroll: noscroll}); + } + }); } else if (prev_id) { Article.view(prev_id, noexpand); } |