diff --git a/app/src/assets/scss/component/_menu.scss b/app/src/assets/scss/component/_menu.scss index 60de8f4a0..bec14a135 100644 --- a/app/src/assets/scss/component/_menu.scss +++ b/app/src/assets/scss/component/_menu.scss @@ -169,7 +169,7 @@ } &__items { - max-height: 80vh; + max-height: min(80vh, calc(100vh - 20px - var(--b3-menu-position-top, 0px))); // 20px 是 .b3-menu 的上下 padding overflow: auto; padding: 0 8px; } diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts index 209c91cc7..556644ad1 100644 --- a/app/src/menus/Menu.ts +++ b/app/src/menus/Menu.ts @@ -146,6 +146,7 @@ export class Menu { this.element.style.zIndex = (++window.siyuan.zIndex).toString(); this.element.classList.remove("fn__none"); setPosition(this.element, options.x - (options.isLeft ? this.element.clientWidth : 0), options.y, options.h, options.w); + this.element.style.setProperty("--b3-menu-position-top", this.element.style.top); } public fullscreen(position: "bottom" | "all" = "all") {