Elevator.js 起源于对一个熟悉尴尬时刻的玩笑。Tim Holman 的项目页面问:当读者滚动长页面到底部时会发生什么——“哇,这么多滚动……回到顶部肯定要花很长时间”——并指出“回到顶部”按钮虽然实用,却完全略过了这个时刻。他的答案:把“回到顶部”按钮称为电梯,并让它表现得像电梯一样。

这个库保持小巧且技术性。它独立运行,无需 jQuery,只处理音频和滚动:开发者指定一个主音频文件和一个结束音频文件,点击按钮后开始播放电梯音乐,平滑滚动回顶部,并播放结束的叮咚声。选项包括自定义目标元素、固定时长、垂直内边距和回调函数,代码在 GitHub 和 NPM 上以 MIT 许可证发布,演示音频从 Pond5 获得许可。

巧妙之处在于项目页面本身就是演示。访问者滚动浏览描述这种尴尬的文字,然后点击电梯按钮,乘坐它回到顶部——这个玩笑是被体验而不是被描述的。2015年4月21日,当这个页面出现在 Hacker News 上时,评论者说它让他们发笑,交流关于音乐和自动播放的笔记,并提出建议,比如跳过13层。

把工具本身当作产品:让返回顶部变成一趟既实用又有趣的电梯之旅

功能不变:它仍然滚动到顶部,而且这个库是独立的即插即用组件,所以“戏剧化”不会牺牲实用性。

体验自我推销:点击电梯的读者会亲身体验到这个玩笑,所以评论者说它让他们发笑,迫不及待地想使用它。

MIT 许可的小代码和 NPM 包降低了尝试成本,将样式和音频留给集成者,让每个网站都有自己的独特乘坐体验。

这个时刻是普遍的:每个长页面都有无聊的返回顶部过程,所以让这个过程变得有趣的修复在任何地方都有受众。

当常规操作感觉像死时间时,加入一点小剧场:保持功能完整的同时增加愉悦感,能把琐事变成人们愿意分享的时刻

2015年4月21日的 Hacker News 讨论获得 438 分和 66 条评论,大部分评论都指向这个玩笑的关键:那些静音的人只有在阅读评论后才发现音乐,有些人建议添加曲目或跳过 13 层,还有人指出如果标签页处于非活动状态,音乐可能会继续播放。这个项目一直保持为一个小型的开源项目——页面和仓库在2026年9月仍然活跃——Elevator.js 成为在不牺牲功能的前提下增加愉悦感的经典案例,而不是一门生意。

从这里,追溯依据

参考来源

  1. Elevator.js - Hacker News news.ycombinator.com
  2. Elevator.js tholman.com
  3. tholman/elevator.js - finally, a 'back to top' button that behaves like a real elevator github.com