fix menu position

This commit is contained in:
Timi
2025-12-11 14:46:55 +08:00
parent fc6edcb5ab
commit 0cdef54954
3 changed files with 58 additions and 27 deletions

View File

@ -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({