前端骨架屏方案小結

2021-08-31 18:10:26 字數 963 閱讀 3458

最近在專案不時有用到骨架屏的需求,所以抽時間對骨架屏的方案作了一下調研,骨架屏的實踐已經有很多了,也有很多人對自己的方案作了介紹.在這裡按照個人的理解做了乙個彙總和分類,分享給大家.

骨架屏就是在頁面資料尚未載入前先給使用者展示出頁面的大致結構,直到請求資料返回後再渲染頁面,補充進需要顯示的資料內容。常用於文章列表、動態列表頁等相對比較規則的列表頁面。 很多專案中都有應用:ex:餓了麼h5版本,知乎,facebook等**中都有應用。

借個圖舉例如下:

簡介中作了關於用途的說明,但是仍然可以繼續細分:

作為spa中路由切換的loading,結合元件的生命週期和ajax請求返回的時機來使用.

作為首屏渲染的優化.

第一類用途需要自己編寫骨架屏,推薦兩個成熟方便定製的svg元件定製為骨架屏的方案

該方案是餓了麼在骨架屏的實踐中總結出的一套方案:

cssunit的配置: 需要使用自適應的單位,按照文件給出的選擇範圍選,直接用px生成的比例會不合適

通過 puppeteer 在服務端操控 headless chrome 開啟開發中的需要生成骨架屏的頁面,在等待頁面載入

渲染完成之後,在保留頁面布局樣式的前提下,通過對頁面中元素進行刪減或增添,對已有元素通過層疊樣

式進行覆蓋,這樣達到在不改變頁面布局下,隱藏和文字,通過樣式覆蓋,使得其展示為灰色塊。然後

將修改後的 html 和 css 樣式提取出來,這樣就是骨架屏了.

複製**

結合ssr render/prerender來使用:

事先編寫好骨架屏元件通過ssr render 解析注入html檔案中(除了需要自己編寫外其實過程類似於上面的自動化方案)參考文章

1中事先編寫好的骨架屏元件可以用代替 (svg) ;或者設計師設計好.

不存在預渲染的概念,但是還是可以通過自己預先編寫骨架屏元件放在頁面中,等到非同步請求的資料回來後更新頁面.

骨架屏使用

骨架屏又稱佔位骨架屏,它是代替菊花圖的一種新型載入提示,具體樣式如下所示 目前 github 上主要實現思路有兩個,2.在布局檔案中,自定義乙個view對每個view進行包裹,具體實現庫有skeleton android 下面主要講第一種思路的實現,替換adapter,用到的庫是skeleton庫 ...

react骨架屏自動生成 移動端骨架屏自動生成方案

找到這裡的同志,或多或少都對骨架屏有所了解,請容許我先囉嗦一句。骨架屏 skeleton screen 是一種優化使用者弱網體驗的方案,可以有效緩解使用者等待的焦躁情緒。tabanimated是提供給ios開發者自動生成骨架屏的一種解決方案。開發者可以將已經開發好的檢視,通過tabanimated配...

Vue頁面骨架屏

小公尺 vue專案中的入口index.html只有簡單的內容 當js執行完之後,會用vue渲染成的dom將div root完全替換掉。我們在div root中加入模擬骨架屏,在chrome開發者工具調整網速 這裡是骨架屏 由此可知,將骨架屏內容直接插入div root中即可實現骨架屏。我們需要骨架屏...