diff --git a/src/core/helpers/protocol/ui/page-scroll-to.js b/src/core/helpers/protocol/ui/page-scroll-to.js index 82451926d045d4c2dd1062a809e0078e7372d6b8..da4976847d8350f0ca7f7e4046288efdf022f381 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 2f3116f74c0b2318d3481ef3c92faa2ad8644f79..c1f86c8c2281b0037ce956738d436af22918330a 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 {