以前,當你在網站或 blog 發表一張圖片時,通常會先放一張縮圖(例如 150x150 或 400x300),點選縮圖或聯結後,才會連到比較大的原圖(例如 800x600 或 1024x768)。看完之後,還得按「上一頁」或關閉新開的視窗,才能繼續瀏覽接下來的圖片或文章,實在相當不方便。

Lightbox 是一個寫得很棒的 JavaScript 小工具(算是 Ajax 嗎?),可以讓瀏覽網頁的人更方便地觀看圖片。點選前往大圖的聯結後,畫面上會先出現一層半透明的遮罩,以及一個讀取圖示,就像下面這樣:

等圖片讀取完成後,大圖就會直接顯示在目前這個頁面上,不需要跳到另一個視窗,也不需要離開原本的文章,如下:

看完之後,只要點選大圖周圍的任意位置,或是按鍵盤上的 x 鍵,就可以把大圖關掉,回到原本的頁面。實在是相當方便。

這種做法最棒的地方,是它沒有改變原本圖片聯結的使用方式:如果瀏覽器沒有啟用 JavaScript,或是 JavaScript 沒有正常執行,使用者還是可以直接開啟原圖。也就是說,它只是替原本的聯結加上一層比較漂亮、比較方便的效果,而不是讓網站完全依賴 JavaScript 才能使用。這在現在各種瀏覽器的支援狀況還不完全一致的時候,算是很重要的一點。

另外,縮圖和原圖分開也有它的好處。列表或文章裡只需要載入較小的圖片,頁面會比較快顯示;真的想看細節的人,再點進去載入大圖即可。當然,如果原圖很大,讀取時還是會需要等一下,這也是為什麼畫面上要先顯示 loading 圖示的原因。

更新:在 wctang 的介紹下,我改用了更方便的 Lightbox JS v2.0 。現在瀏覽之前放的人體素描 時,除了 overlay 的出現有縮放特效之外,還可以一次瀏覽同一系列的圖片。

只要把游標移到圖片右邊,就會出現「Next」,點選後便可前往下一張;移到左邊則會出現「Prev」,可以回到上一張。至於關閉的方式,一樣是按鍵盤上的 x 鍵,或是點選「Close」即可。