FIX: prevents multiple jumps to happen with LockOn (#8460)

This commit is contained in:
Joffrey JAFFEUX 2019-12-04 16:45:23 +01:00 committed by GitHub
parent 46d8fd3831
commit c5140ef3fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 13 deletions

View File

@ -51,13 +51,16 @@ export default class LockOn {
lock() {
const startedAt = new Date().getTime();
let previousTop = this.elementTop();
previousTop && $(window).scrollTop(previousTop);
const interval = setInterval(() => {
if (!previousTop) {
previousTop = this.elementTop();
previousTop && $(window).scrollTop(previousTop);
} else {
const top = Math.max(0, this.elementTop());
const elementTop = this.elementTop();
if (!previousTop && !elementTop) {
// we can't find the element yet, wait a little bit more
return;
}
const top = Math.max(0, elementTop);
const scrollTop = $(window).scrollTop();
if (typeof top === "undefined" || isNaN(top)) {
@ -68,7 +71,6 @@ export default class LockOn {
$(window).scrollTop(top);
previousTop = top;
}
}
// Commit suicide after a little while
if (new Date().getTime() - startedAt > LOCK_DURATION_MS) {