UNPKG

halo-theme-dream2.0-plus

Version:

梦之城,童话梦境,动漫类型博客主题。

1 lines 2.55 kB
!function(){window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;const t=.05,e=DreamConfig.effects_universe_mode,i=document.createElement("canvas");let s,n,h,o=!0;const a="226,225,224",r=[];let c,d=null,f=!0;function u(){s=window.innerWidth,n=window.innerHeight,h=.216*s,i.id="effects_universe",i.setAttribute("width",s),i.setAttribute("height",n),i.setAttribute("class","canvas_effects "+e),i.setAttribute("style","position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none;"),document.body.insertBefore(i,document.body.firstChild)}function l(){c.clearRect(0,0,s,n);for(var t=r.length,i=0;i<t;i++){var e=r[i];e.move(),e.fadeIn(),e.fadeOut(),e.draw()}}function m(){this.reset=function(){this.giant=y(3),this.comet=!this.giant&&!o&&y(10),this.x=g(0,s-10),this.y=g(0,n),this.r=g(1.1,2.6),this.dx=g(t,6*t)+(this.comet+1-1)*t*g(50,120)+.1,this.dy=-g(t,6*t)-(this.comet+1-1)*t*g(50,120),this.fadingOut=null,this.fadingIn=!0,this.opacity=0,this.opacityTresh=g(.2,1-.4*(this.comet+1-1)),this.do=g(5e-4,.002)+.001*(this.comet+1-1)},this.fadeIn=function(){this.fadingIn&&(this.fadingIn=!(this.opacity>this.opacityTresh),this.opacity+=this.do)},this.fadeOut=function(){this.fadingOut&&(this.fadingOut=!(this.opacity<0),this.opacity-=this.do/2,this.x>s||this.y<0)&&(this.fadingOut=!1,this.reset())},this.draw=function(){if(c.beginPath(),this.giant)c.fillStyle="rgba(180,184,240,"+this.opacity+")",c.arc(this.x,this.y,2,0,2*Math.PI,!1);else if(this.comet){c.fillStyle="rgba("+a+","+this.opacity+")",c.arc(this.x,this.y,1.5,0,2*Math.PI,!1);for(var t=0;t<30;t++)c.fillStyle="rgba("+a+","+(this.opacity-this.opacity/20*t)+")",c.rect(this.x-this.dx/4*t,this.y-this.dy/4*t-2,2,2),c.fill()}else c.fillStyle="rgba(226,225,142,"+this.opacity+")",c.rect(this.x,this.y,this.r,this.r);c.closePath(),c.fill()},this.move=function(){this.x+=this.dx,this.y+=this.dy,!1===this.fadingOut&&this.reset(),(this.x>s-s/4||this.y<0)&&(this.fadingOut=!0)},setTimeout(function(){o=!1},50)}function y(t){return Math.floor(1e3*Math.random())+1<10*t}function g(t,i){return Math.random()*(i-t)+t}u(),window.addEventListener("resize",u,!1),c=i.getContext("2d");for(var w=0;w<h;w++)r[w]=new m,r[w].reset();l(),function t(){var i;d=null!==(i=localStorage.getItem("night"))?"true"===i:null!==d?d:document.documentElement.classList.contains("night"),"all"===e||"day"===e&&!d||"night"===e&&d?(f=!0,l()):c&&f&&(c.clearRect(0,0,s,n),f=!1),window.requestAnimationFrame(t)}()}();