色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jquery.rotate.js遞歸

錢浩然2年前10瀏覽0評論

jquery.rotate.js是一個用于旋轉(zhuǎn)HTML元素的jQuery插件,其使用非常簡單。但其內(nèi)部實(shí)現(xiàn)卻使用到了遞歸算法。

遞歸,就是函數(shù)自己調(diào)用自己,直到滿足條件后停止調(diào)用自己的過程。在jquery.rotate.js中,遞歸算法被用在了旋轉(zhuǎn)元素的動畫上。

$.fn.rotate = function(options, callback) {
var settings = {
angle: 0,
animateTo: 0,
easing: function (x, t, b, c, d) {  // 利用緩動算法來實(shí)現(xiàn)動畫效果
return c*(t/d)+b;
},
duration: 1000,
callback: function(){},
center: ["50%", "50%"]
};
...
return this.each(function() {
...
var angle = data.angle;
var animateTo = angle + (settings.animateTo - angle);
var easing = settings.easing;
var duration = settings.duration;
var callback = settings.callback; 
var center = settings.center;
...
function rotate(animateTo) {
...
var currentTime = +new Date;
var time = Math.min(1, ((currentTime - startTime) / duration));
var easingVal = easing(time, currentTime - startTime, 0, 1, duration);
angle = (animateTo - data.angle) * easingVal + data.angle;
...
if (time< 1) {
requestAnimationFrame(function() {
rotate(animateTo);
});
} else {
...
}
callback.call($this);
}
rotate(animateTo);
});
};

如上所示,rotate方法中調(diào)用了rotate函數(shù),而rotate函數(shù)又會調(diào)用requestAnimationFrame,從而實(shí)現(xiàn)了旋轉(zhuǎn)動畫的效果。

遞歸算法的使用使得jquery.rotate.js實(shí)現(xiàn)了一個非常流暢的旋轉(zhuǎn)效果,同時也為我們提供了一個很好的實(shí)例,讓我們更好地理解遞歸算法在動畫中的應(yīng)用。