From 706e98e39d0567750c9b4dca4afa6dd05bcbbcb6 Mon Sep 17 00:00:00 2001 From: passthem Date: Wed, 1 Apr 2026 02:02:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=B8=AA=E6=B3=A8=E9=87=8A=E4=BB=A5?= =?UTF-8?q?=E5=85=8D=E6=9C=AA=E6=9D=A5=E8=AF=BB=E4=B8=8D=E6=87=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MainpageTypewriter.svelte | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/MainpageTypewriter.svelte b/src/components/MainpageTypewriter.svelte index 890ab93..b0b8bb0 100644 --- a/src/components/MainpageTypewriter.svelte +++ b/src/components/MainpageTypewriter.svelte @@ -97,19 +97,30 @@ countdown: 0, }) - // 显示 + // --- 显示 --- + /** 当前正在处理的词语 */ let wipWord = $derived(words[status.wipWord]) + + /** 当前正在处理的词语的阶段。如果是最后一个阶段(也就是删除阶段),则取最后 + * 一个元素。 + */ let wipStage = $derived( wipWord.stages[Math.min(status.wipStage, wipWord.stages.length - 1)], ) + + /** 当前的文本(未经过裁剪的,不含输入法未上屏部分) */ let currentText = $derived( typeof wipStage == 'string' ? wipStage : wipStage.text, ) + + /** 如果在最后一个阶段,则根据进度去裁剪文本 */ let currentTextSliced = $derived( status.wipStage >= wipWord.stages.length ? currentText.slice(0, currentText.length - status.wipEditing) : currentText, ) + + /** 输入法待上屏区域 */ let currentEditing = $derived( typeof wipStage == 'string' || status.wipEditing <= 0 ? ''