diff --git a/src/core/view/bridge/subscribe/index.js b/src/core/view/bridge/subscribe/index.js index a047a87336df7504e1c616959b431db268037fd7..6cbe94bd59087e2c826dc3bac8735687eed25a91 100644 --- a/src/core/view/bridge/subscribe/index.js +++ b/src/core/view/bridge/subscribe/index.js @@ -39,7 +39,7 @@ function updateCssVar (vm) { } } -export default function initSubscribe (subscribe) { +export default function initSubscribe (subscribe) { Object.keys(subscribeApis).forEach(name => { subscribe(name, subscribeApis[name]) }) @@ -88,10 +88,10 @@ export default function initSubscribe (subscribe) { onReachBottomDistance, enableTransparentTitleNView }) - setTimeout(function () { // 避免监听太早,直接触发了 scroll + requestAnimationFrame(function () { // 避免监听太早,直接触发了 scroll document.addEventListener('scroll', scrollListener) - }, 10) + }) } }) } -} +} diff --git a/src/core/view/bridge/subscribe/scroll.js b/src/core/view/bridge/subscribe/scroll.js index c0d3dfe911de5b001f2a28e91979d904881a4342..a148d8a3298fb3c419072d0695397f037023cd79 100644 --- a/src/core/view/bridge/subscribe/scroll.js +++ b/src/core/view/bridge/subscribe/scroll.js @@ -91,6 +91,10 @@ export function createScrollListener (pageId, { } function trigger () { + const pages = getCurrentPages() + if (!pages.length || pages[pages.length - 1].$page.id !== pageId) { + return + } // publish const scrollTop = window.pageYOffset if (enablePageScroll) { // 向 Service 发送 onPageScroll 事件 @@ -121,4 +125,4 @@ export function createScrollListener (pageId, { } ticking = true } -} +}