首先來梳理一下如何實現煙花綻放的思路:
1、煙花的發射:需要創建一個div模擬發射,發射的動畫可以采用“緩沖運動”的動畫來實現。也有其他運動可以選擇,但緩沖運動更加形象反映煙發發射的過程額。
2、煙花的綻放:在煙花綻放前,則需要隱藏發射的div了,然后用添加子元素的方式,添加更多的div,使其做拋物線運動,展現煙花綻放的效果。
3、當煙花發射后及煙花綻放后,注意不是單純的隱藏,而是利用移除節點的方式,將其不顯示。
下面就開始我們的代碼了:
上面是建立的簡單的主體內容:新建了兩個class屬性名:·fire代表發射煙花的屬性設置,·spark代表煙花綻放時的屬性設置。
以上是利用了構造函數的方法創建的屬性和方法。首先創建煙花節點并發射,給出該構造函數的屬性和方法。當發射時主要用了緩沖運動,調取了animate();這個函數,當運動完后,便會調取Spark(x,y)、init()、paralora()函數,從而創建30到60個火花,并做拋物線的運動。如下便是所調用的函數。
在調取了拋物線運動,不能讓創建的煙花一直運動,故做了一下判斷,當超過瀏覽器窗口時,所創建的煙花節點將會自動移除,看如下代碼。
如下是animate函數代碼:
通過以上代碼運行后,就會出現美麗的煙花了。