给静态的世界加上能点、能动的灵魂

流水线第 3 站 · 前端(交互线)。上一步你有了一个能打开但『不会动』的世界展示页,这一步用 JavaScript 给它加上滚动出现、角色卡展开、按钮反馈等互动,让访客『逛』起来,下一步进入【数据】环节把写死的内容抽成可维护的数据。

by @前端小满·来自小红书 ↗·收录于 2026 / 04 / 13
拆 · DECODE

提示词原文

你是一位资深前端工程师。我已经有一个单文件 HTML 的异世界展示页(青春热血,魔法 × 美食),现在想给它加上恰到好处的互动,让它活起来。我把当前完整 HTML 贴在最后。 请帮我用原生 JavaScript(不引外部库)加上这些互动,并且保持单文件、可嵌入: 1. 【滚动入场】:板块随页面往下滚动逐个淡入/上滑出现,营造『逐渐走进这个世界』的感觉; 2. 【角色卡展开】:点击角色卡,展开看到他的渴望与故事;再点收起。这里要管好【状态】——同一时间只展开一个,别全炸开; 3. 【即时反馈】:可点的元素要有悬停和点击反馈(变色/微缩放/光效),让人一眼知道『这能点』; 4. 一个贴合世界气质的小彩蛋(比如鼠标划过主视觉时飘起几点『魔法火星』),用纯 CSS/JS 实现,别太花哨拖慢页面。 要求:交互要克制、流畅,移动端也能正常用(点击代替悬停)。请一个交互一个交互地加,每加一个给我看效果和对应代码片段,确认了再加下一个。最后把完整文件整合给我。 【当前 HTML】:{把上一步产出的完整 HTML 贴这里}You are a senior frontend engineer. I have a single-file HTML showcase of an other-world (youthful & hot-blooded, magic x food). I want to add just-right interactions to bring it alive. Current full HTML pasted at the end. Add these with vanilla JavaScript (no external libs), keeping it single-file and embeddable: 1. Scroll reveal: sections fade/slide in as you scroll, evoking gradually walking into this world; 2. Character card expand: click a card to reveal the character's desire and story; click again to collapse. Manage state - only one open at a time, don't blow them all open; 3. Instant feedback: clickable elements get hover and click feedback (color/scale/glow) so it's obvious they're tappable; 4. One mood-fitting easter egg (e.g. a few magic sparks drifting when the mouse passes the hero), pure CSS/JS, not so fancy it slows the page. Requirements: restrained, smooth interactions; works on mobile (tap instead of hover). Add one interaction at a time, show me the effect and code snippet each time, confirm before the next. Finally integrate the full file. [Current HTML]: {paste the full HTML from the previous step}

轻点带虚线的术语,看它的解释。点右上角「译」切换中英对照。

为什么这么写

这是第 3 站 · 前端的下半场:从『能看』到『能玩』。 上一站给了你一个静态页,这一站用 javascript 给它注入灵魂。

为什么单独拆一站?因为小白一旦让 AI『页面和交互一起做』,往往会得到一坨又长又乱、出了 bug 都不知道错在哪的代码。先静态、再交互,一步一验收,是最稳的节奏。

三个设计点:

第一,点名要管好 state(状态)。『角色卡同一时间只展开一个』——这句不写,AI 经常做成点一个开一个、最后全炸开。明确状态规则,是交互不出乱子的关键,也让你顺带理解了前端最核心的概念:『状态变了,界面才跟着变』。

第二,强调 feedback(即时反馈)和 interaction design(交互设计)的『克制』。新手容易让 AI 加一堆炫酷动效,结果页面又卡又晕。要求『克制、流畅、移动端可用』,世界才高级而不廉价。

第三,一个交互一个交互地加。这是全篇反复出现的『迭代开发』心法——每加一个就验收,错了立刻能定位是哪一段。比一次性塞满所有交互再来找 bug 高效太多。

到这一站,你的世界已经能逛、能点、能动了,完全可以当成成品嵌进网页。如果你还想让内容好维护、以后加角色不用改代码——继续第 5 站【数据】。

这条用到的术语

  • javascript
    JavaScript
    网页的「行为」,负责「能干什么」——点击有反应、表单能提交、数据会更新。它让死页面活起来,是前端的「大脑」。
  • state
    状态
    界面「当前的样子/数据」,比如购物车里有几件、按钮是开还是关。状态一变,界面就跟着变。前端很大一部分工作就是「管好状态」。
  • interaction design
    交互设计
    设计「用户操作和界面反应」的规则:点按钮有什么反馈、滑动会怎样、出错了怎么提示。好交互让人「不用想就会用」。
  • feedback
    即时反馈
    用户做了操作,界面要马上给回应:点了按钮要变色、提交了要转圈、成功了要提示。没反馈会让人怀疑「我点了吗?坏了吗?」

可替换变量

同一句话,换一个词,AI 会给你完全不同的故事。

原生 JavaScript允许引入一个轻量动画库动效更丝滑省事,但会引入外部依赖,单文件可嵌入性下降
克制的小动效全屏沉浸式滚动叙事+视差更震撼,适合做『作品级』展示,但开发和调试成本上升
点击展开角色卡鼠标悬停即预览桌面端更轻快,但要额外为移动端做点击降级处理