我想將一個簡單的CSS3動畫轉換爲純JavaScript(不是在jQuery中,因爲我認爲將這個簡單的東西加載到整個庫是矯枉過正)。將CSS3動畫轉換爲純JavaScript
這是關於動畫bounceInUp
從http://daneden.me/animate/。示例演示:http://jsfiddle.net/ELDf7/
@keyframes bounceInUp {
0% {
opacity: 0;
transform: translateY(2000px);
}
60% {
opacity: 1;
transform: translateY(-30px);
}
80% {
transform: translateY(10px);
}
100% {
transform: translateY(0);
}
}
在http://javascript.info/tutorial/animation,有一個關於如何用JavaScript做動畫教程。但我不是在數學非常好,所以我提出在PhotoShop圖形來展示如何動畫應該在JavaScript中運行(大約):
(圖表繪圖儀等「增量」可以被發現here)
是否有可能在這個純粹JavaScript的圖表中創建一個返回動態「delta」的數學公式?
我試了一些bounce function,但它並沒有真正的工作。 (http://jsfiddle.net/ELDf7/2/)
編輯: 我設法讓一個很好的數學公式:
-Math.cos(2 * Math.PI *進度)+ Math.pow(進度,1)*((1.5 + 1)*進度 - 1.5);
但是現在我又遇到了另一個問題,動畫以圖片的一半顯示開始,而不是隱藏整個圖片,就像CSS3動畫一樣。
對於JavaScript動畫的現場演示,在這裏看到:http://jsfiddle.net/ELDf7/14/
有誰知道我可以改變它,使圖像完全隱藏最初?也許可以創建一個包含圖像高度的變量,然後JavaScript進行計算,以便動畫在圖像的一半出現之前不會啓動。
jQuery將爲您提供事件和定時器,以及一個動畫方法,這使得這非常容易。否則,你將不得不自己設置WindowTimeout,並進行這些計算。坦率地說,當jQueryUI有一些非常適合的東西時,自己實現它可能很愚蠢。 http://docs.jquery.com/UI/Effects/Bounce 如果你真的想推出自己的,它可能有助於研究其來源。 – 2013-04-06 10:55:53
這不是[CSS3 transitions](http://dev.w3.org/csswg/css-transitions/);它是[CSS3動畫](http://www.w3.org/TR/css3-animations/)。轉場使用'transition'速記屬性。動畫使用'動畫'速記屬性和'@ keyframes'。 – 2013-04-06 13:59:36
對於你的最後一個問題,只需將'progress + = 1;'''在'bounce'內部加入即可。 [見](http://jsfiddle.net/ELDf7/5/) – searlea 2013-04-06 18:23:12