給類名.userModal添加了一個動畫,在3 s 內完成top值從初始變爲0的動畫。執行完畢後,讓類名.warp的元素隱藏。瀏覽器
問題:.userModal是向上不斷移動,當徹底覆蓋瀏覽器顯示區域(Top = 0時),而後把.warp隱藏(該元素的z-index在.userModal之下)。實際動畫中,.userModal還沒有徹底覆蓋.warp時,.warp就已經隱藏了。出現如圖所示狀況:函數
應該是內容區到最頂端時,.warp才隱藏,顯然,內容區還未置頂,.warp已經被隱藏了(背景是body的灰色了)。動畫
緣由:動畫的最後一幀是須要時間的,是基於狀態的。.userModal最後一個動畫,是當前的Top值與0之間的動畫。先將.userModal的Top值設置爲0,而後執行最後一幀動畫。但問題是,當.userModal的Top值設置爲0時,就默認已經完成動畫了,如今就開始執行回調函數中的.warp隱藏語句了。而實際上,最後一幀執行的時間,如果大於執行完.warp隱藏語句的時間,就會出現.warp先被隱藏,而後.userModal還未置頂的狀況了。按理說,這個差異是很小的,通常看不出來,但若是屬性值變化量很大,而動畫時間又很小,差異就會很明顯了。好比,一樣移動100px, 100 s 完成該動畫,則每秒只變化1px。若是10 s完成,則每秒要變化10 px,顯然,對於10px這麼大的距離,眼尖的就已經能發現不是完美銜接了,若動畫時間再縮短,則差距愈大,銜接越差。回調函數