您的位置:首頁>正文

老司機約戰秋名山之駭客帝國進化版,特效滿天飛,老司機開車還不上車?

手機用戶點我近來看特效

源生JavaScript構造駭客帝國進化版本, 用源生JS寫出高大上, 逼格更高。 這才是最適合程式師體現的一張圖, 我就想問一句, 還有誰?

為什麼說是進化版呢?因為裡面用到源生JS結合canvans寫出來的, 且代碼量少之又少, 130行代碼坐到。 想獲取高大上的逼格代碼, 請搜索web前端交流群:621071874, 裡面可供大家分享的案例更多, 期望各位大佬的加入。

JS源碼想獲取源碼的小夥伴記得來學習群:621071874

知識點:canvas高級繪圖標籤API運用, 陣列方法, js邏輯思維, 代碼性能優化。 定義了一個立即執行函數, 形成具備作用域, 避免污染全域空間。 將功能函數掛在了window。 利用setTimeout和clearTimeout的非同步實現相應的功能, 不是為一種很好的結局方案。

window.requestAnimationFrame()這個API是流覽器提供的js全域方法, 針對動畫效果。

使用

用法1:


1

注意函數裡的requestAnimationFrame(animate)

有了這句話, 就形成了遞迴呼叫, 設置應為這個函數多用在持續的動畫中, 可以自由處理要不要這句話。

用法2:


2

優點

流覽器可以優化並行的動畫動作, 更合理的重新排列動作序列, 並把能夠合併的動作放在一個渲染週期內完成, 從而呈現出更流暢的動畫效果。 經過流覽器優化, 動畫更流暢窗口沒啟動時;動畫將停止, 省計算資源。

使用場景

可以調節重新渲染, 大幅提高網頁性能。 其中最重要的, 它可以將某些代碼放到下一次重新渲染時執行。 避免短時間內觸發大量reflow。

3

頁面滾動事件(scroll)的監聽函數, 就很適合用這個api,推遲到下一次重新渲染。

4

最佳的應用場景還是在幀動畫裡, 可以大幅優化性能;

相容性支援

5

說明:

定義了一個立即執行函數, 形成具備作用域, 避免污染全域空間。

將功能函數掛在了window.

利用setTimeout和clearTimeout的非同步實現相應的功能, 不是為一種很好的結局方案。

最後

HTML5/CSS3時代, 我們要在web裡做動畫選擇其實已經很多了:

你可以用CSS3的animattion+keyframes;

你也可以用css3的transition;

你還可以用通過在canvas上作圖來實現動畫, 也可以借助jQuery動畫相關的API方便地實現;

著實裝了一回

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示