一行能打动人心的文字
首页 Hero 区域是用户对你的第一印象。标题够大,描述够清晰——但还缺一样东西:动态的个性表达。
幻梦用 Typed.js 在首页副标题处创建打字机效果,轮播多行文案。
配置方式
# data/theme.yaml
home:
hero:
subtitles:
- "技术开发者"
- "代码艺术家"
- "终身学习者"
- "梦想追逐者"
四行文案循环打字,每行打完停顿 2 秒后删除,再打下一行。
初始化
class AnimationManager {
initTypewriter(): void {
const el = document.querySelector('[data-typed]');
if (!el) return;
const strings = JSON.parse(el.getAttribute('data-typed') || '[]');
new Typed(el, {
strings,
typeSpeed: 60, // 打字速度 (ms/字符)
backSpeed: 40, // 删除速度
backDelay: 2000, // 打完后的停顿
loop: true, // 循环播放
showCursor: true, // 显示光标
cursorChar: '|', // 光标字符
});
}
}
Hugo 模板将 YAML 数据注入为 data-typed 属性,TypeScript 读取并初始化。
为什么是打字机效果?
打字机效果在 2026 年已经算不上新鲜。但它仍然有效,原因有二:
- 暗示创作过程:打字机暗示这些文字是"正在被写下的",给人一种实时、真诚的感觉
- 聚焦注意力:动态文字天然吸引视线,让用户注意到你想传达的核心信息
光标设计
闪烁的光标 | 用 CSS 动画实现:
.typed-cursor {
opacity: 1;
animation: blink 1s infinite;
color: var(--cp4);
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
光标颜色使用主题色,与标题的渐变文字呼应。
与粒子的配合
打字机效果运行在 Canvas 粒子背景之上。浅色模式下糖果粒子飘落,光标闪烁——组合出一种动态但不过于热闹的首页氛围。
好的首页不是堆砌信息。一句打动人的话,比十段描述更有力量。
评论