|
12 | 12 | const update = () => { |
13 | 13 | cancelAnimationFrame(frame); |
14 | 14 | frame = requestAnimationFrame(() => { |
15 | | - const elements = names.map(name => document.getElementById(`ce-section-${name}`)).filter((element): element is HTMLElement => !!element && element.getClientRects().length > 0); |
| 15 | + const elements = names.map(name => document.getElementById(`section-${name}`)).filter((element): element is HTMLElement => !!element && element.getClientRects().length > 0); |
16 | 16 | if (!elements.length) return; |
17 | 17 | const atBottom = window.scrollY > 0 && window.scrollY + window.innerHeight >= document.documentElement.scrollHeight - 2; |
18 | 18 | const current = atBottom ? elements.at(-1) : elements.filter(element => element.getBoundingClientRect().top <= 140).at(-1) ?? elements[0]; |
19 | | - active = current?.id.replace('ce-section-', '') ?? ''; |
| 19 | + active = current?.id.replace('section-', '') ?? ''; |
20 | 20 | }); |
21 | 21 | }; |
22 | 22 | update(); |
23 | 23 | const observer = new ResizeObserver(update); |
24 | | - const form = document.getElementById('ce-editor'); |
| 24 | + const form = document.getElementById('editor-form'); |
25 | 25 | if (form) observer.observe(form); |
26 | 26 | window.addEventListener('scroll', update, { passive: true }); |
27 | 27 | window.addEventListener('resize', update); |
|
31 | 31 |
|
32 | 32 | <nav class="section-nav" aria-label="配置分区"> |
33 | 33 | <p>配置目录</p> |
34 | | - <label class="section-nav__picker" for="ce-section-picker">配置分区 |
35 | | - <select id="ce-section-picker" value={active} onchange={(event) => focusSection(event.currentTarget.value)}> |
| 34 | + <label class="section-nav__picker" for="editor-section-picker">配置分区 |
| 35 | + <select id="editor-section-picker" value={active} onchange={(event) => focusSection(event.currentTarget.value)}> |
36 | 36 | {#each session.visibleSections as section (section.name)}<option value={section.name}>{section.label}{session.errorCount(section) ? ` · ${session.errorCount(section)} 项待修正` : ''}</option>{/each} |
37 | 37 | </select> |
38 | 38 | </label> |
|
44 | 44 | </button> |
45 | 45 | {/if} |
46 | 46 | {/each} |
47 | | - <a href="#ce-preview" onclick={(event) => { event.preventDefault(); workbench.showPreview(); }}>查看配置预览 →</a> |
| 47 | + <a href="#editor-preview" onclick={(event) => { event.preventDefault(); workbench.showPreview(); }}>查看配置预览 →</a> |
48 | 48 | </nav> |
49 | 49 |
|
50 | 50 | <style> |
|
0 commit comments