diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts
index 0c9a3ef20..e48b7f2bc 100644
--- a/app/src/menus/Menu.ts
+++ b/app/src/menus/Menu.ts
@@ -126,20 +126,21 @@ export class Menu {
`);
- this.popup({x: 0, y: position === "bottom" ? window.innerHeight / 2 : 0});
+ if (isMobile()) {
+ window.addEventListener("touchmove", this.preventDefault, {passive: false});
+ } else {
+ window.addEventListener(this.wheelEvent, this.preventDefault, {passive: false});
+ }
+ this.element.classList.remove("fn__none");
+ this.element.style.left = "0";
+
if (position === "bottom") {
this.element.querySelectorAll(".b3-menu__submenu").forEach((item: HTMLElement) => {
- item.style.top = "calc(100vh - 500px + 48.5px)";
- });
- // 解决部分机型非全屏菜单无效
- // 解决方案一,对应的 item.style.top 为 calc(50vh + 48.5px)
- // this.element.style.top = "50vh";
- // 解决方案二,需要联动上面的 item.style.top
- this.element.style.position = "sticky";
- this.element.style.height = "500px";
- this.element.querySelectorAll(".b3-menu__separator").forEach((item: HTMLElement) => {
- item.style.pointerEvents = "none"; // 解决手机端分割线点击交互陷阱
+ item.style.top = "calc(50vh + 48.5px)";
});
+ this.element.style.top = "50vh";
+ } else {
+ this.element.style.top = "0";
}
this.element.scrollTop = 0;
}