From 9b1dd07681bc66de421bb08b449766339dc4ed9b Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Mon, 28 Mar 2022 15:45:55 +0800 Subject: [PATCH] fix: pageScrollTo selector question/109566 --- src/core/helpers/protocol/ui/page-scroll-to.js | 5 ++--- src/core/view/bridge/subscribe/scroll.js | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/core/helpers/protocol/ui/page-scroll-to.js b/src/core/helpers/protocol/ui/page-scroll-to.js index 82451926d..da4976847 100644 --- a/src/core/helpers/protocol/ui/page-scroll-to.js +++ b/src/core/helpers/protocol/ui/page-scroll-to.js @@ -1,7 +1,6 @@ export const pageScrollTo = { scrollTop: { - type: Number, - required: true + type: Number }, duration: { type: Number, @@ -10,4 +9,4 @@ export const pageScrollTo = { params.duration = Math.max(0, duration) } } -} +} diff --git a/src/core/view/bridge/subscribe/scroll.js b/src/core/view/bridge/subscribe/scroll.js index 2f3116f74..c1f86c8c2 100644 --- a/src/core/view/bridge/subscribe/scroll.js +++ b/src/core/view/bridge/subscribe/scroll.js @@ -8,8 +8,19 @@ export function disableScroll (evt) { export function pageScrollTo ({ scrollTop, + selector, duration }) { + if (typeof scrollTop === 'undefined') { + const el = document.querySelector(selector) + if (el) { + const { top, height } = el.getBoundingClientRect() + scrollTop = top + window.pageYOffset + if (__PLATFORM__ === 'h5') { + scrollTop -= height + } + } + } const documentElement = document.documentElement const { -- GitLab