diff --git a/app/javascript/submission_form/areas.vue b/app/javascript/submission_form/areas.vue index 65524fce..05fe7e2f 100644 --- a/app/javascript/submission_form/areas.vue +++ b/app/javascript/submission_form/areas.vue @@ -132,10 +132,18 @@ export default { this.scrollInContainer(areaRef.$el) } else { const targetRect = areaRef.$refs.scrollToElem.getBoundingClientRect() - const root = this.$root.$el?.parentNode?.classList?.contains('ds') ? this.$root.$el : document.body - const rootRect = root.getBoundingClientRect() const scrollEl = this.scrollEl || window + let rootRect = {} + + if (this.scrollEl === document.documentElement) { + rootRect = this.scrollEl.getBoundingClientRect() + } else { + const root = this.$root.$el?.parentNode?.classList?.contains('ds') ? this.$root.$el : document.body + + rootRect = root.getBoundingClientRect() + } + scrollEl.scrollTo({ top: targetRect.top - rootRect.top, behavior: 'smooth' }) }