From 1ae71bea84976cbb3e3417ca39ba4e14f868db6b Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 23 Sep 2019 14:33:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=BB=9A=E5=8A=A8=EF=BC=88onPageScroll?= =?UTF-8?q?=EF=BC=89=E5=90=8E=E5=88=87=E6=8D=A2=E9=A1=B5=E9=9D=A2=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/view/bridge/subscribe/index.js | 8 ++++---- src/core/view/bridge/subscribe/scroll.js | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/core/view/bridge/subscribe/index.js b/src/core/view/bridge/subscribe/index.js index a047a873..6cbe94bd 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 c0d3dfe9..a148d8a3 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 } -} +} -- GitLab