Fiori應用的花瓣動畫效果是怎麼畫出來的

Fiori裏的busy dialog有兩種表現形式,一種是下圖裏的flower形狀,由5個花瓣組成。另一種是下圖的3/4個圓環的效果。目前我只看了前者的behavior。可以看我附件裏的video。這個video是手動將default 300毫秒改成30秒之後的效果。
clipboard1

clipboard2

  1. When it appeas in UI

According to callstack, the Flower-like animation, technically speaking, the BusyDialog will be opened every time there is change on url, which you could observe in address bar in your browser. This animation is implemented via in /sap/bc/ui5_ui5/ui2/ushell/resources/sap/m/BusyDialog.js
clipboard3

  1. How is the Flower animation rendered

The entry point of rendering logic is in line 2019 below in file: /sap/bc/ui5_ui5/ui2/ushell/resources/sap/ui/core/Popup.js.
clipboard4

And here is the Flower rendering logic:
clipboard5

From here we know that the Flower we see in UI actually consists of FIVE ( why five? see line 97 below 😃 ) different div tag with well-prepared CSS class.
clipboard6

clipboard7

  1. When the Flower vanishes

There is a call in shell controller which will check whether the Flower busy dialog is still opened. If so, just put the close operation into the event queue with 0.3 second’s delay. It does not mean that the busy dialog will be closed after exactly 0.3 seconds due to Javascript’s single thread execution pattern.

clipboard8

Also in the end of UI navigation, the UI framework will also attempt to close busy dialog if any.
clipboard9

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章