mybid
線上拍賣 · 8 分鐘閱讀 · 12 次閱讀

拍賣網站的 Skeleton Screen 設計:讓等待不再焦慮

拍賣網站用 Skeleton Screen 取代轉圈圈,讓買家在等待時不焦慮。從原理到實作一次搞懂。

一句話總結:Skeleton Screen 是用灰色色塊模擬頁面結構的載入佔位畫面,讓使用者「感覺」載入變快了,拍賣網站用它可以降低 20-30% 的跳出率。

你有沒有這種經驗:點進一個拍賣頁面,畫面一片空白,中間一個轉圈圈的 spinner 在那邊轉啊轉。你不知道它還要轉多久、不知道頁面長什麼樣子、不知道你要找的東西到底在不在。轉了三秒你就開始猶豫要不要按上一頁了。

這就是為什麼 Facebook 在 2014 年帶頭用了 Skeleton Screen——那些灰色的長條跟方塊,看起來像是內容的「骨架」。它不會讓載入變快,但它會讓你「覺得」快了。

拍賣網站特別需要這東西。因為一個拍品列表頁可能要同時載入幾十張圖片、即時價格、倒數計時器、出價次數,資料來源又多又雜。如果這段等待時間處理不好,買家還沒看到商品就跑了。

Skeleton Screen 是什麼?跟 Spinner 差在哪?

Skeleton Screen(骨架畫面)是一種用灰色或淺色色塊模擬頁面真實結構的載入佔位技術,它跟傳統 Spinner 最大的差別在於「給出預期」。 Spinner 只告訴你「在載入中」,但 Skeleton Screen 告訴你「載入完會長這樣」。

心理學上這叫做「漸進式揭露」(Progressive Disclosure)。人類大腦對「有結構的等待」耐受度遠高於「空白的等待」。Google 的研究指出,使用 Skeleton Screen 的頁面,使用者感知載入時間比實際少了約 35%。

簡單分類一下常見的載入方式:

  • 空白頁面:最糟糕,使用者以為壞了
  • Spinner / Loading 圈圈:至少知道在載入,但不知道要等多久
  • Progress Bar:知道進度,但拍賣頁面很難計算真正的百分比
  • Skeleton Screen:知道頁面結構,心理上最舒服

Skeleton Screen 與其他載入方式比較

根據 Nielsen Norman Group 的研究,使用者對 1 秒以內的延遲幾乎無感,1-3 秒會開始注意到,超過 3 秒就會考慮離開。拍賣列表頁的首次載入通常落在 1.5-3 秒之間,剛好是最需要用 Skeleton Screen 撐住使用者耐心的範圍。

拍賣網站哪些地方該用 Skeleton Screen?

不是每個地方都需要 Skeleton Screen,用錯地方反而會讓使用者覺得奇怪。 以下是拍賣網站最適合使用的場景:

拍品列表頁

這是最經典的使用場景。每張拍品卡片包含圖片、品名、目前價格、剩餘時間、出價次數。用 Skeleton Screen 預先畫出這些元素的位置跟大小,等資料回來再一一填入。

拍品詳情頁

大圖區、商品描述、出價歷史、賣家資訊——這些區塊的 Skeleton 讓買家知道「這頁面很豐富,值得等」。

出價歷史面板

即時出價列表用 Skeleton 特別有效,因為這個區塊會頻繁更新,使用者已經習慣看到它「閃一下」再出現內容。

不適合用 Skeleton 的地方

  • 按鈕:出價按鈕該直接顯示,不要讓使用者找不到
  • 導覽列:頂部 Navigation 應該最先載入,通常是靜態 HTML
  • 倒數計時器:這個必須即時顯示,用 Skeleton 會讓買家不知道還剩多少時間

我見過一個拍賣平台把倒數計時器也做成 Skeleton,結果買家投訴說「我點進去不知道還剩幾分鐘,等畫面載完發現只剩 30 秒,根本來不及出價」。這就是濫用 Skeleton 的反面教材。

怎麼設計好看又實用的 Skeleton?

好的 Skeleton Screen 有三個原則:形狀要像、動畫要柔、過渡要順。

形狀要像

Skeleton 的色塊大小跟位置要盡量貼近真實內容。圖片區域用方形、文字用窄長條、頭像用圓形。如果 Skeleton 跟實際內容差太多,畫面切換時反而會有「跳動感」,體驗更差。

動畫要柔

靜態的灰色色塊看起來像壞掉的頁面。加上一個從左到右的漸層動畫(shimmer effect),讓使用者知道「東西正在載入」。CSS 實作很簡單:

.skeleton {
  background: linear-gradient(90deg, #E2E8F0 25%, #F1F5F9 50%, #E2E8F0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

過渡要順

Skeleton 消失、真實內容出現的瞬間,加一個 fade-in 動畫(200-300ms),避免畫面閃爍。Livewire 搭配 Alpine.js 的 x-transition 可以很優雅地處理這件事。

如果你對拍賣網站的整體效能優化有興趣,Core Web Vitals 優化實戰裡面有聊到 LCP 跟 CLS 的調校,跟 Skeleton Screen 的設計直接相關。

Skeleton Screen 設計原則

實務案例:Skeleton Screen 救了跳出率

一個台灣的二手家電拍賣平台,列表頁平均載入時間 2.8 秒,跳出率高達 58%。他們本來用的是整頁 Spinner——一個大大的轉圈圈放在正中間。

後來改成 Skeleton Screen,列表頁先顯示 12 張拍品卡片的骨架,圖片區域、標題、價格的位置都先佔好。實際載入時間沒變(還是 2.8 秒),但跳出率從 58% 降到 41%。使用者停留時間增加了 22 秒。

他們做了一件聰明的事:Skeleton 的圖片區域不是用純灰色,而是用拍品分類的主題色淡色版。比如 3C 類用淡藍色、家具類用淡棕色。這樣使用者掃一眼就知道「喔,這區都是 3C」,即使圖片還沒載入。

想了解更多拍賣頁面的網頁設計細節,動線設計跟視覺引導也是影響轉換率的關鍵。

FAQ

Q:Skeleton Screen 會影響 SEO 嗎?

不會。Skeleton Screen 是純前端的視覺效果,Google 爬蟲看到的是伺服器回傳的 HTML 內容,不會被 Skeleton 影響。但要注意一點:如果你的內容是完全靠 JavaScript 渲染的(CSR),那 Google 爬蟲可能看不到真實內容。建議拍賣列表頁用 SSR(伺服器端渲染)產生初始 HTML,Skeleton 只用在後續的動態載入。更多 SEO 相關的技巧可以看 拍賣網站 SEO 優化指南

Q:Livewire 元件怎麼實作 Skeleton Screen?

Livewire 有內建的 wire:loading 指令,搭配 Alpine.js 可以很簡單地做出來。在 Livewire 元件裡,用 wire:loading 顯示 Skeleton、wire:loading.remove 顯示真實內容,不需要額外的 JavaScript。如果是首次頁面載入,可以在 Blade 模板裡直接寫 Skeleton 的 HTML,等 Livewire Hydrate 完再替換。

Q:Skeleton Screen 跟 Lazy Loading 有什麼關係?

它們是好搭檔。Lazy Loading 延遲載入畫面外的內容(通常是圖片),Skeleton Screen 在內容載入前提供視覺佔位。拍賣列表頁的最佳實務是:首屏的 6-8 張拍品直接載入,以下的用 Lazy Loading + Skeleton Screen 組合。使用者往下滑的時候,先看到 Skeleton 的骨架,滑到定位後圖片跟資料才開始載入。搭配 拍賣圖片優化 的技巧,整體體驗會更流暢。

Q:行動裝置上 Skeleton Screen 要特別處理嗎?

要。行動裝置螢幕小,Skeleton 的色塊數量要比桌面版少。桌面版可能一排顯示 4 張拍品卡片的 Skeleton,手機版就只顯示 1-2 張。另外 shimmer 動畫在低階手機上可能造成掉幀,可以用 prefers-reduced-motion media query 讓動畫敏感的使用者看到靜態版本。

相關文章

什麼時間上架拍賣最好賣:賣家的時間策略

同一件東西,週三下午結標跟週日晚上結標,成交價可以差 20%。這篇從結標時間、上架天數、季節因素到不同品類的最佳時機,幫你把每次上架都安排在最有利的時間點。

· 9 分鐘 · 3 次閱讀
閱讀 →

拍賣平台的賣家評價系統:怎麼看、怎麼累積

拍賣平台的賣家評價是買家出價的重要參考。這篇教你怎麼解讀評價、識別刷評行為,以及賣家如何累積好評價提升成交率。

· 11 分鐘 · 3 次閱讀
閱讀 →

拍賣的物流包裝指南:讓買家收到完好商品的實戰技巧

包裝不好導致商品損壞是拍賣糾紛的大宗。從選材料、包裝方法到物流選擇,教你安全出貨。

· 11 分鐘 · 5 次閱讀
閱讀 →