同步小程序与管理端更新,完善抽烟记录和解绑冷静期
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
/**
|
||||
* 页面滚动位置管理工具
|
||||
* 保存和恢复底部导航栏页面的滚动位置,切换 Tab 后返回时保持浏览位置
|
||||
* 保存页面滚动位置;主 Tab 切换时回到顶部,子页面返回时保留位置
|
||||
*/
|
||||
|
||||
const SCROLL_POS_KEY = 'tabScrollPositions';
|
||||
let lastShownTab = '';
|
||||
|
||||
/** 主 Tab 的 onShow 调用,兼容底部按钮和代码中的 switchTab。 */
|
||||
function resetScrollOnTabShow(page, pageKey) {
|
||||
const switched = lastShownTab !== pageKey;
|
||||
lastShownTab = pageKey;
|
||||
if (!switched) return;
|
||||
const current = page._scrollTop == null ? page.data.scrollTop : page._scrollTop;
|
||||
page._scrollTop = 0;
|
||||
saveScrollPosition(pageKey, 0);
|
||||
if (!current && !page.data.scrollTop) return;
|
||||
// 手动滚动不会更新绑定的 scrollTop,先同步实际位置再发出回顶指令。
|
||||
page.setData({ scrollTop: current || page.data.scrollTop }, function() {
|
||||
page.setData({ scrollTop: 0 });
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存指定页面的滚动位置
|
||||
@@ -37,6 +53,7 @@ function getScrollPosition(pageKey) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
resetScrollOnTabShow,
|
||||
saveScrollPosition,
|
||||
getScrollPosition
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user