diff --git a/pages/index/index.js b/pages/index/index.js index 8088e9b..7785969 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -20,6 +20,7 @@ Page({ currentY: 0, sidebarBtnTop: 500, sidebarBtnHidden: false, + userManuallyHidden: false, // 搜索区域相关 searchSectionVisible: true, @@ -125,9 +126,23 @@ Page({ // 切换按钮显示/隐藏到侧边栏 toggleSidebarBtn() { - this.setData({ - sidebarBtnHidden: !this.data.sidebarBtnHidden - }); + // 如果当前不在顶部,点击则隐藏按钮 + if (this.data.lastScrollTop > 50) { + this.setData({ + sidebarBtnHidden: true, + userManuallyHidden: true + }); + wx.setStorageSync('sidebarBtnHidden', true); + wx.setStorageSync('userManuallyHidden', true); + } else { + const newHiddenState = !this.data.sidebarBtnHidden; + this.setData({ + sidebarBtnHidden: newHiddenState, + userManuallyHidden: newHiddenState + }); + wx.setStorageSync('sidebarBtnHidden', newHiddenState); + wx.setStorageSync('userManuallyHidden', newHiddenState); + } }, // 触摸开始事件 @@ -179,13 +194,17 @@ Page({ if (Math.abs(diffY) > screenHeight / 3) { this.setData({ - sidebarBtnTop: -100 // 隐藏按钮 + sidebarBtnTop: -100, // 隐藏按钮 + sidebarBtnHidden: true, + userManuallyHidden: true }); wx.setStorageSync('sidebarBtnTop', -100); wx.setStorageSync('sidebarBtnHidden', true); + wx.setStorageSync('userManuallyHidden', true); } else { wx.setStorageSync('sidebarBtnTop', this.data.sidebarBtnTop); wx.setStorageSync('sidebarBtnHidden', false); + wx.setStorageSync('userManuallyHidden', false); } this.setData({ @@ -211,6 +230,7 @@ Page({ const savedBtnTop = wx.getStorageSync('sidebarBtnTop'); const savedBtnHidden = wx.getStorageSync('sidebarBtnHidden'); + const savedUserManuallyHidden = wx.getStorageSync('userManuallyHidden'); let defaultTop = screenHeight * 0.5; if (savedBtnTop !== '' && savedBtnTop !== -100) { @@ -223,7 +243,8 @@ Page({ this.setData({ sidebarBtnTop: defaultTop, - sidebarBtnHidden: false, + sidebarBtnHidden: savedBtnHidden || false, + userManuallyHidden: savedUserManuallyHidden || false, isSearchBarFullyHidden: false, lastScrollTop: 0 }); @@ -1116,7 +1137,8 @@ Page({ // 搜索框始终固定显示,不做隐藏处理 // 侧边栏按钮显示逻辑 - if (scrollTop <= threshold && this.data.sidebarBtnHidden) { + // 如果用户手动隐藏过,滚动到顶部也不再自动显示 + if (scrollTop <= threshold && this.data.sidebarBtnHidden && !this.data.userManuallyHidden) { updates.sidebarBtnHidden = false; needUpdate = true; wx.setStorageSync('sidebarBtnHidden', false); diff --git a/pages/index/index.wxml b/pages/index/index.wxml index 49fbb00..a7fd2ba 100644 --- a/pages/index/index.wxml +++ b/pages/index/index.wxml @@ -88,7 +88,7 @@ bindtap="scrollToTop" > - 顶部 + top 招商合作