슬래시 메뉴 스크롤 계산 분리

This commit is contained in:
2026-07-27 10:41:17 +09:00
parent ab1b2a32c1
commit 3cc99ebeec
7 changed files with 89 additions and 13 deletions

View File

@@ -57,6 +57,7 @@ import {
DEFAULT_SLASH_MENU_HEIGHT,
DEFAULT_SLASH_MENU_WIDTH
} from '../../lib/markdown-slash-menu-position.js'
import { calculateSlashMenuScrollTop } from '../../lib/markdown-slash-menu-scroll.js'
import { buildCalloutOpenerLine, CALLOUT_BACKGROUND_OPTIONS, QUOTE_BACKGROUND_OPTIONS } from '../../lib/markdown-callout.js'
import { buildCodeFenceOpener } from '../../lib/markdown-code-block.js'
import { buildToggleOpenerLine } from '../../lib/markdown-toggle.js'
@@ -2497,16 +2498,12 @@ const scrollLiveSlashHighlightedIntoView = () => {
return
}
const itemTop = highlightedItem.offsetTop
const itemBottom = itemTop + highlightedItem.offsetHeight
const viewTop = menu.scrollTop
const viewBottom = viewTop + menu.clientHeight
if (itemTop < viewTop) {
menu.scrollTop = itemTop
} else if (itemBottom > viewBottom) {
menu.scrollTop = itemBottom - menu.clientHeight
}
menu.scrollTop = calculateSlashMenuScrollTop({
itemTop: highlightedItem.offsetTop,
itemHeight: highlightedItem.offsetHeight,
viewTop: menu.scrollTop,
viewHeight: menu.clientHeight
})
})
}