1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-26 12:23:06 +08:00
course-tencent-cloud/public/static/lib/jquery.buoyant.min.js

2 lines
3.0 KiB
JavaScript

!function(e){e.fn.buoyant=function(t){var l=e.extend({containerClass:"buoyant-container",parentClass:"buoyant-parent",elementClass:"",imgSrc:"",width:50,height:-1,backgroundColor:"black",fps:60,numberOfItems:4,minRadius:10,maxRadius:40,minSpeed:20,maxSpeed:70,collisionEfficiency:1,gravity:0,trails:!1,colliding:!1},t),h=this,i=h.width(),n=h.parent().innerHeight(),f=[],v=[],x=[];h.parent().addClass(l.parentClass),this.each(function(){e(this).addClass("buoyant-container"),e(this).addClass(l.containerClass)});function s(t,i,n,s,a){var e;this.x=t,this.y=i,this.r=n,this.w=2*n,this.h=2*n,this.vx=s,this.vy=a,e=l.imgSrc?document.createElement("img"):document.createElement("span"),l.imgSrc&&(e.src=l.imgSrc),l.elementClass&&e.classList.add(l.elementClass),e.style.height=this.h+"px",e.style.width=this.w+"px",e.style.marginLeft="-"+this.r+"px",e.style.marginTop="-"+this.r+"px",e.style.left=this.x+"px",e.style.top=this.y+"px",x.push(e),h.append(e),this.step=function(t){this.x+=this.vx/l.fps*t,this.y+=this.vy/l.fps*t},this.getMomentum=function(){return console.log(1),1},this.halt=function(){this.vx=0,this.vy=0},this.update=m(this),f.push(this)}function m(t){t.x+=t.vx/l.fps,t.y+=t.vy/l.fps,t.vy+=l.gravity,t.x+t.vx/l.fps+t.r>i?(t.vx=-1*Math.abs(t.vx),t.vx=t.vx*l.collisionEfficiency):t.x+t.vx/l.fps-t.r<0&&(t.vx=Math.abs(t.vx),t.vx=t.vx*l.collisionEfficiency),t.y+t.vy/l.fps+t.r>n?(t.vy=-1*Math.abs(t.vy),t.vy=t.vy*l.collisionEfficiency):t.y+t.vy/l.fps-t.r<0&&(t.vy=Math.abs(t.vy),t.vy=t.vy*l.collisionEfficiency)}function p(t,i){return Math.sqrt((t.x-i.x)*(t.x-i.x)+(t.y-i.y)*(t.y-i.y))}function d(t,i){if(Math.abs(t.x-i.x)<=t.r+i.r&&Math.abs(t.y-i.y)<=t.r+i.r&&p(t,i)<=t.r+i.r)return!0}for(var u=0;u<l.numberOfItems;u++)new s(Math.random()*i,Math.random()*n,l.minRadius+Math.random()*(l.maxRadius-l.minRadius),(l.minSpeed+Math.random()*(l.maxSpeed-l.minSpeed))*[1,-1][Math.floor(Math.random()+.5)],(l.minSpeed+Math.random()*(l.maxSpeed-l.minSpeed))*[1,-1][Math.floor(Math.random()+.5)]);for(u=0;u<f.length-1;u++)for(var a=u+1;a<f.length;a++)v.push([f[u],f[a]]);for(u in v){d(v[u][0],v[u][1])}return window.onresize=function(){i=h.width(),n=h.parent().innerHeight()},setInterval(function(){if(l.trails,l.colliding)for(u in v){var t=v[u][0],i=v[u][1];if(d(t,i)){var n=Math.atan((i.y-t.y)/(i.x-t.x)),s=(t.r,i.r,p(t,i),Math.cos(n),Math.sin(n),Math.cos(n)*t.vx+Math.sin(n)*t.vy),a=Math.cos(n)*t.vy-Math.sin(n)*t.vx,e=Math.cos(n)*i.vx+Math.sin(n)*i.vy,h=Math.cos(n)*i.vy-Math.sin(n)*i.vx,o=((t.m-i.m)*s+2*i.m*e)/(t.m+i.m),r=a,c=(2*t.m*s-(t.m-i.m)*e)/(t.m+i.m),y=h;t.vx=Math.cos(n)*o-Math.sin(n)*r,t.vy=Math.cos(n)*r+Math.sin(n)*o,i.vx=Math.cos(n)*c-Math.sin(n)*y,i.vy=Math.cos(n)*y+Math.sin(n)*c,t.vx=t.vx*l.collisionEfficiency,t.vy=t.vy*l.collisionEfficiency}}for(u in f)x[u].style.left=f[u].x+"px",x[u].style.top=f[u].y+"px",m(f[u])},1e3/l.fps),this.each(function(){e(this).css("height",n+"px"),setTimeout(function(){i=h.width(),n=h.parent().innerHeight()},100)})}}(jQuery);
//# sourceMappingURL=jquery.buoyant.min.js.map