擴充套件jQuery的其他運動形式

2021-08-20 09:34:18 字數 2091 閱讀 6817

我們知道jquery中的animate運動形式只有兩種:linear(勻速)和swing(慢快慢)

所以,這裡對jquery中的運動形式進行了一些擴充套件

jquery原始碼利用的tween.js庫進行的運動形式的封裝,我們這裡同樣也利用的是tween.js庫(只是對它稍加改動,選出了一些常用的)進行擴充套件

擴充套件之前,肯定是要先引入jquery庫的,這裡我就不再引入了,直接看擴充套件

$.extend(jquery.easing , ,

easeout: function(x,t, b, c, d),

easeboth: function(x,t, b, c, d)

return -c/2 * ((--t)*(t-2) - 1) + b;

}, easeinstrong: function(x,t, b, c, d),

easeoutstrong: function(x,t, b, c, d),

easebothstrong: function(x,t, b, c, d)

return -c/2 * ((t-=2)*t*t*t - 2) + b;

}, elasticin: function(x,t, b, c, d, a, p)

if ( (t /= d) == 1 )

if (!p)

if (!a || a < math.abs(c)) else

return -(a*math.pow(2,10*(t-=1)) * math.sin( (t*d-s)*(2*math.pi)/p )) + b;

}, elasticout: function(x,t, b, c, d, a, p)

if ( (t /= d) == 1 )

if (!p)

if (!a || a < math.abs(c)) else

return a*math.pow(2,-10*t) * math.sin( (t*d-s)*(2*math.pi)/p ) + c + b;

},

elasticboth: function(x,t, b, c, d, a, p)

if ( (t /= d/2) == 2 )

if (!p)

if ( !a || a < math.abs(c) )

else

if (t < 1)

return a*math.pow(2,-10*(t-=1)) *

math.sin( (t*d-s)*(2*math.pi)/p )*0.5 + c + b;

}, backin: function(x,t, b, c, d, s)

return c*(t/=d)*t*((s+1)*t - s) + b;

}, backout: function(x,t, b, c, d, s)

return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;

}, backboth: function(x,t, b, c, d, s)

if ((t /= d/2 ) < 1)

return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;

}, bouncein: function(x,t, b, c, d),

bounceout: function(x,t, b, c, d) else if (t < (2/2.75)) else if (t < (2.5/2.75))

return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;

},

bounceboth: function(x,t, b, c, d)

return this['bounceout'](x,t*2-d, 0, c, d) * 0.5 + c*0.5 + b; }

});

使用也和jquery中的linear和swing的用法相同

用法示例:

$('#div1').click(function(),4000,'elasticout');

});

關於jquery擴充套件屬性方法的形式

jquery是原生js的封裝方法,在前端工作者看來是比寫原生js更加的方法省事,但是jquery也有一些侷限性,比如無法自己新增呼叫乙個方法,今天來講講怎麼來給jquery新增自己定義的方法,除了在jquery庫上寫方法除外。現在常用的就是兩種方法jquery的.ex tend 和.extend 和...

系統被擴充套件的幾種形式

一 系統被擴充套件的幾種形式 1 直接修改 當需求改變或者有新需求的時候。我們可能會修改多個類檔案,可能還涉及配置檔案與前台頁面檔案。這種改動肯定要引起重新編譯,打包和部署,肯定是需要停機的。2 直接修改 但只侷限在乙個類或方法中。雖然也是直接修改 但改動的範圍比較小,需要進行回歸測試的範圍也比上面...

JS擴充套件 或 Jquery的擴充套件寫法

js的擴充套件方法 1 定義類靜態方法擴充套件 2 定義類物件方法擴充套件 var aclass function 1 定義這個類的靜態方法 aclass.sayhello function 2 定義這個類物件的物件方法 aclass.prototype.protosayhello function...