在網頁復刻應用程式時,第一關面對的就是 UI 重建,而最先遇到的,常常就是那個佔據網頁最顯眼位置的傢伙——介面橫幅 (Banner)。在重建的過程中,難免會把以前的開發套路帶進來,就像我一樣,結果就是浪費了一堆寶貴的時間。
Banner 結構解析:化繁為簡
要重建橫幅,就像組模型一樣,要先把它解構成一個個小零件,再重新組裝起來。以這個 Banner 來說,內容如下:
- 漸層方塊
- 主標題
- 子標題
就這三個元件,搞得自己是灰頭土臉...
JavaScript Canvas 繪製 Banner 漸層:是否搞錯了什麼
第一步的「漸層方塊」,就是要實作網頁 Banner 的漸層效果,按照我研讀 "深入淺出 HTML5 程式設計" 一書的經驗,想都沒想就拿 HTML5 的 Canvas 物件來開始雕刻,耗費了我兩天的時間,主要有幾個卡點:
- 在一個固定大小的畫布上作畫,當大小改變時,畫面也會等比例縮放,而非超出 Canvas 畫布。
- 採用絕對座標,比起用 em 等比例單位,使用 px 絕對單位會更適合在 Canvas 上操作。
就在千辛萬苦完成後,【腦殘賤貓的備忘錄】好友老貓在看過我的程式碼不久,只淡淡說了句:
CSS 就有漸層功能,何須用上 Canvas?
CSS 漸層:更簡潔高效的 Banner 方案
老貓就在看完後,立馬就丢了串程式碼給我,就幾行字,字裡行間我感受到濃濃地經驗釋出。
主管問:為什麼你跪著看螢幕?
我默默地把 Code 記錄在 CodeSandbox 上,在 See also 區,有興趣的人可以去觀摩下,看看 JavaScript 和 CSS 的 Power 輸出。
總結
對於網頁 Banner 漸層效果的實現,CSS 漸層在大多數情況下都是比 Canvas 更好的選擇。
See also
- How can you find the height of text on an HTML canvas?
- 使用canvas繪製文字
- 腦殘賤貓的備忘錄
- Eden Example from CodeSandbox
哎呀呀!我被 highlight 了
回覆刪除讚啦!🤣
刪除