diff --git a/core/src/utils/status-tap.ts b/core/src/utils/status-tap.ts index fbfe4f93c9..cc25d851c3 100644 --- a/core/src/utils/status-tap.ts +++ b/core/src/utils/status-tap.ts @@ -15,7 +15,21 @@ export const startStatusTap = () => { const contentEl = el.closest('ion-content'); if (contentEl) { new Promise(resolve => componentOnReady(contentEl, resolve)).then(() => { - writeTask(() => contentEl.scrollToTop(300)); + writeTask(async () => { + + /** + * If scrolling and user taps status bar, + * only calling scrollToTop is not enough + * as engines like WebKit will jump the + * scroll position back down and complete + * any in-progress momentum scrolling. + */ + contentEl.style.setProperty('--overflow', 'hidden'); + + await contentEl.scrollToTop(300); + + contentEl.style.removeProperty('--overflow'); + }); }); } });