safely scroll element since its last event may fired after being removed

This commit is contained in:
Yanzhen Yu
2018-12-21 14:31:19 +08:00
parent b3412b1d46
commit f1fbb9d07e

View File

@@ -1,4 +1,4 @@
import { rebuild, buildNodeWithSN } from 'rrweb-snapshot'; import { rebuild, buildNodeWithSN, INode } from 'rrweb-snapshot';
import * as mittProxy from 'mitt'; import * as mittProxy from 'mitt';
import Timer from './timer'; import Timer from './timer';
import { import {
@@ -422,8 +422,15 @@ export class Replayer {
behavior: isSync ? 'instant' : 'smooth', behavior: isSync ? 'instant' : 'smooth',
}); });
} else { } else {
(target as Element).scrollTop = d.y; try {
(target as Element).scrollLeft = d.x; (target as Element).scrollTop = d.y;
(target as Element).scrollLeft = d.x;
} catch (error) {
/**
* Seldomly we may found scroll target was removed before
* its last scroll event.
*/
}
} }
break; break;
} }