Elevator.js 起初只是針對一個熟悉尷尬時刻開的玩笑。Tim Holman 的專案頁面問道,當讀者把長頁面捲到最底部時會發生什麼事——「哇,捲了這麼多……要回到頂端可得花上好一陣子」——並指出雖然「回到頂端」按鈕很實用,卻直接跳過了那個時刻。他的答案是把回到頂端按鈕稱為電梯,並讓它們像電梯一樣運作。

這個函式庫把承諾維持得小而技術性。它是獨立運作的——不需要 jQuery——而且只處理音訊與捲動:開發者指定一個主要音訊檔和一個結束音訊檔,點擊按鈕就會開始播放電梯音樂、平順地捲回頂端,並播放結尾的叮聲。選項涵蓋自訂目標元素、固定時長、垂直內距與回呼函式,程式碼以 MIT 授權發布於 GitHub 與 NPM,示範音訊則獲 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 Hacker News · news.ycombinator.com ·
  2. Elevator.js Tim Holman (tholman.com) · tholman.com
  3. tholman/elevator.js - finally, a 'back to top' button that behaves like a real elevator GitHub · github.com