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 { ${window.siyuan.languages.back} `); - 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; }