diff --git a/miniprogram/pages/main/journal/index.less b/miniprogram/pages/main/journal/index.less
index 7e16f0b..a66717c 100644
--- a/miniprogram/pages/main/journal/index.less
+++ b/miniprogram/pages/main/journal/index.less
@@ -1,21 +1,22 @@
.custom-navbar {
+ // 导航栏样式
+}
- .more-menu {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
+.more-menu {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 999;
+ position: fixed;
+ background: var(--theme-bg-overlay);
+
+ .content {
+ z-index: 1000;
position: fixed;
- background: var(--theme-bg-overlay);
-
- .content {
- margin: 190rpx 0 0 12rpx;
- z-index: 1;
- position: fixed;
- background: var(--theme-bg-menu);
- box-shadow: 0 0 12px var(--theme-shadow-medium);
- border-radius: 2px;
- }
+ background: var(--theme-bg-menu);
+ box-shadow: 0 0 12px var(--theme-shadow-medium);
+ border-radius: 8rpx;
}
}
diff --git a/miniprogram/pages/main/journal/index.ts b/miniprogram/pages/main/journal/index.ts
index 3b0a3b8..b45a030 100644
--- a/miniprogram/pages/main/journal/index.ts
+++ b/miniprogram/pages/main/journal/index.ts
@@ -36,6 +36,8 @@ interface JournalData {
isFinished: boolean;
stickyOffset: number;
isShowMoreMenu: boolean;
+ menuTop: number;
+ menuLeft: number;
}
Page({
@@ -63,7 +65,9 @@ Page({
isFetching: false,
isFinished: false,
stickyOffset: 0,
- isShowMoreMenu: false
+ isShowMoreMenu: false,
+ menuTop: 0,
+ menuLeft: 0
},
onLoad() {
Events.reset("JOURNAL_REFRESH", () => {
@@ -110,9 +114,30 @@ Page({
});
},
toggleMoreMenu() {
- this.setData({
- isShowMoreMenu: !this.data.isShowMoreMenu
- })
+ if (!this.data.isShowMoreMenu) {
+ // 打开菜单时计算位置
+ const query = wx.createSelectorQuery();
+ query.select(".more").boundingClientRect();
+ query.exec((res) => {
+ if (res[0]) {
+ const { top, left, height } = res[0];
+ this.setData({
+ isShowMoreMenu: true,
+ menuTop: top + height + 16, // 按钮下方 8px
+ menuLeft: left
+ });
+ }
+ });
+ } else {
+ // 关闭菜单
+ this.setData({
+ isShowMoreMenu: false
+ });
+ }
+ },
+ /** 阻止事件冒泡 */
+ stopPropagation() {
+ // 空函数,仅用于阻止事件冒泡
},
toCreater() {
wx.navigateTo({
diff --git a/miniprogram/pages/main/journal/index.wxml b/miniprogram/pages/main/journal/index.wxml
index 11fba5d..46b472d 100644
--- a/miniprogram/pages/main/journal/index.wxml
+++ b/miniprogram/pages/main/journal/index.wxml
@@ -2,17 +2,22 @@
-
+