From 7ec25a358874652ff97f3afd26d72fadb74cfcaa Mon Sep 17 00:00:00 2001 From: Justin Halsall Date: Mon, 17 Oct 2022 16:26:52 +0200 Subject: [PATCH] Fix: scrolling on elements being is ignored In certain cases when scrollLeft is being set, but the value doesn't change. Then scrollTop is also ignored, even if that value was changed. In this case we use the `scrollTo` api as it doesn't have that issue. --- packages/rrweb/src/replay/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/rrweb/src/replay/index.ts b/packages/rrweb/src/replay/index.ts index 3c8ba214..0fb399bc 100644 --- a/packages/rrweb/src/replay/index.ts +++ b/packages/rrweb/src/replay/index.ts @@ -1909,8 +1909,11 @@ export class Replayer { }); } else { try { - (target as Element).scrollTop = d.y; - (target as Element).scrollLeft = d.x; + (target as Element).scrollTo({ + top: d.y, + left: d.x, + behavior: isSync ? 'auto' : 'smooth', + }); } catch (error) { /** * Seldomly we may found scroll target was removed before