fix form scroll on iphone

This commit is contained in:
Alex Turchyn
2023-07-03 00:03:29 +03:00
parent 787df43ac0
commit 59f0d04ccd
4 changed files with 51 additions and 25 deletions
+14 -1
View File
@@ -73,7 +73,11 @@ export default {
scrollIntoField (field) {
this.areaRefs.find((area) => {
if (area.field === field) {
area.$refs.scrollToElem.scrollIntoView({ behavior: 'smooth', block: 'start' })
if (document.body.style.overflow === 'hidden') {
this.scrollInContainer(area.$el)
} else {
area.$refs.scrollToElem.scrollIntoView({ behavior: 'smooth', block: 'start' })
}
return true
} else {
@@ -81,6 +85,15 @@ export default {
}
})
},
scrollInContainer (target) {
const padding = 64
const boxRect = window.scrollbox.children[0].getBoundingClientRect()
const targetRect = target.getBoundingClientRect()
const targetTopRelativeToBox = targetRect.top - boxRect.top
window.scrollbox.scrollTop = targetTopRelativeToBox - document.body.offsetHeight + window.form_container.offsetHeight + target.offsetHeight + padding
},
setAreaRef (el) {
if (el) {
this.areaRefs.push(el)