JavaScript 加載動(dòng)畫的作用是在頁面加載過程中給用戶一個(gè)視覺體驗(yàn),告訴用戶網(wǎng)頁正在加載并且很快就要加載完成了。JavaScript 加載動(dòng)畫通常會(huì)顯示在頁面的中間位置,或者局部加載的時(shí)候會(huì)顯示在該區(qū)域的中間位置,如下:
.loader { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 99; display: flex; justify-content: center; align-items: center; } .loader img { width: 150px; height: 150px; }
為了展示如何加載動(dòng)畫的外觀,下面將給出兩種不同的加載動(dòng)畫,一種是應(yīng)用著名的loading.io網(wǎng)站的資源;另一種則是使用 CSS 和 JS 實(shí)現(xiàn)的簡單加載動(dòng)畫。
加載動(dòng)畫1
加載動(dòng)畫2
以上兩個(gè)加載動(dòng)畫的區(qū)別在于外觀樣式不同。第一個(gè)加載動(dòng)畫使用的是引用自loading.io網(wǎng)站的資源,它以相同大小的正方形方塊組成一個(gè)大方塊,并將其旋轉(zhuǎn),形成旋轉(zhuǎn)的正方形方塊。第二個(gè)加載動(dòng)畫使用的是 CSS 和 JS 編寫的樣式,它以不同大小的同心圓組成一個(gè)大圓,并將其旋轉(zhuǎn),形成旋轉(zhuǎn)的圓圈。
無論外觀樣式如何,JavaScript 加載動(dòng)畫在實(shí)現(xiàn)時(shí)都需要注意以下幾點(diǎn):
- 樣式需要設(shè)計(jì)為固定定位,這樣才能保證它在整個(gè)頁面的中央位置
- 樣式需要設(shè)置 z-index 屬性,這樣才能保證它不會(huì)被其他元素覆蓋
- 樣式大小需要設(shè)置為與實(shí)際占用空間一致,以免影響頁面排版
- 需要在頁面加載完成后使用 JavaScript 將其隱藏
需要注意的是,如果頁面的加載速度很快,那么加載動(dòng)畫就會(huì)瞬間消失,這種情況下會(huì)讓用戶感到加載動(dòng)畫顯得多余。因此,加載動(dòng)畫的設(shè)計(jì)需要在考慮加載動(dòng)畫的可見性的同時(shí),考慮在快速加載頁面時(shí)的隱藏方式。
除了以上實(shí)現(xiàn)方式,還有一種通過使用第三方庫實(shí)現(xiàn)的加載動(dòng)畫。例如,使用GreenSock Animation Platform(GSAP) 這個(gè)幫助開發(fā)者輕松創(chuàng)建高效、直觀和流暢動(dòng)畫的開源 JavaScript 動(dòng)畫庫。GSAP 可以實(shí)現(xiàn)各種逼真、平滑的加載動(dòng)畫效果,它包括許多 TypeScript 代碼片段,免費(fèi)向開發(fā)人員提供基礎(chǔ)版、促銷版和較高級(jí)的訂閱版。
JavaScript 加載動(dòng)畫的表現(xiàn)形式多樣,但其設(shè)計(jì)目的是為了優(yōu)化頁面加載體驗(yàn),提高用戶體驗(yàn)。通過使用不同的樣式和庫,開發(fā)人員可以根據(jù)項(xiàng)目需要選擇不同的設(shè)計(jì)方式。但無論采取何種設(shè)計(jì)方式,不能影響頁面的排版、占用過多資源,也不能太過顯眼,這樣才是一種優(yōu)美的設(shè)計(jì)。