您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關HTML5如何實現進度條特效,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
<!DOCTYPEhtml><html><head><metacharset='UTF-8'><title>HTML5有特色的進度條</title><basetarget=“_blank”/><style>body{背景:#111;白顏色;}a{color:White;}畫布{背景:#111;邊框:1px實心#171717;顯示:塊;左:50%;邊距:-51px00-201px;位置:絕對;最高:50%;}</style></head><body><scripttype=“text/javascript”> varlightLoader=函數(c,cw,ch){var_this=this;this.c=c;this.ctx=c.getContext('2d');this.cw=cw;this.ch=ch;this.loaded=0;this.loaderSpeed=0.6;this.loaderHeight=10;this.loaderWidth=310;this.loader={x:(this.cw/2)-(this.loaderWidth/2),y:(this.ch/2)-(this.loaderHeight/2)};this.particles=[];this.particleLift=180;this.hueStart=0this.hueEnd=120;this.hue=0;this.gravity=.15;this.particleRate=4;/*========================================================*//*初始化 /*========================================================*/this.init=function(){this.loop();};/*========================================================*//*實用程序功能/*====================================/=。============*/this.rand=function(rMi,rMa){return??(((Math.random()*(rMa-rMi+1))+rMi);};this.hitTest=函數(x1,y1,w1,h2,x2,y2,w2,h3){return!(x1+w1<x2||x2+w2<x1||y1+h2<y2||y2+h3<y1);};/*========================================================*//*更新加載程序/*========================================================*/this.updateLoader=function(){if(this.loaded<100){ this.loaded+=this.loaderSpeed;}else{this.loaded=0;}};/*========================================================*//*渲染加載器/*=================================*/this.renderLoader=function(){this.ctx.fillStyle='#000';======================*/this.ctx.fillRect(this.loader.x,this.loader.y,this.loaderWidth,this.loaderHeight);this.hue=this.hueStart+(this.loaded/100)*(this.hueEnd-this.hueStart);varnewWidth=(this.loaded/100)*this.loaderWidth;this.ctx.fillStyle='hsla('+this.hue+',100%,40%,1)';this.ctx.fillRect(this.loader.x,this.loader.y,newWidth,this.loaderHeight);this.ctx.fillStyle='#222'; this.ctx.fillRect(this.loader.x,this.loader.y,newWidth,this.loaderHeight/2);};/*========================================================*//*粒子/*========================================================*/this.Particle=function(){this.x=_this.loader.x+((__this.loaded/100)*_this.loaderWidth)-_this.rand(0,1);this.y=_this.ch/2+_this.rand(0,_this.loaderHeight)-_this.loaderHeight/2;this.vx=(_this.rand(0,4)-2)/100;this.vy=(_this.rand(0,_this.particleLift)-_this.particleLift*2)/100;this.width=_this.rand(1,4)/2;this.height=_this.rand(1,4)/2;this.hue=_this.hue;}; this.Particle.prototype.update=function(i){this.vx+=(_this.rand(0,6)-3)/100;this.vy+=_this.gravity;this.x+=this.vx;this.y+=this.vy;如果(this.y>_this.ch){_this.particles.splice(i,1);}};this.Particle.prototype.render=function(){_this.ctx.fillStyle='hsla('+this.hue+',100%,'+_this.rand(50,70)+'%,'+_this。rand(20,100)/100+')';_this.ctx.fillRect(this.x,this.y,this.width,this.height);};this.createParticles=function(){vari=this.particleRate;而(i--){this.particles.push(newthis.Particle());};};this.updateParticles=function(){ vari=this.particles.length;而(i--){varp=this.particles[i];p.update(i);};};this.renderParticles=function(){vari=this.particles.length;而(i--){varp=this.particles[i];p.render();};};</p><p>/*==========================================================*//*透明畫布/*=======================================================*/this.clearCanvas=function(){this.ctx.globalCompositeOperation='source-過度';this.ctx.clearRect(0,0,this.cw,this.ch);this.ctx.globalCompositeOperation='更輕';};/*========================================================*/ /*動畫循環/*========================================================*//this.loop=function(){varloopIt=function(){requestAnimationFrame(loopIt,_this.c);_this.clearCanvas();_this.createParticles();_this.updateLoader();_this.updateParticles();_this.renderLoader();_this.renderParticles();};loopIt();};};/*========================================================*//*檢查畫布支持/*=================================/=varisCanvasSupported=function(){varelem=document.createElement('canvas');======================*/ return!!(elem.getContext&&elem.getContext('2d'));};/*========================================================*//*設置requestAnimationFrame/*=================================*/varsetupRAF=function(){varlastTime=0;======================*/varvendor=['ms','moz','webkit','o'];for(varx=0;x<vendor.length&&!window.requestAnimationFrame;++x){window.requestAnimationFrame=window[vendors[x]+'RequestAnimationFrame'];window.cancelAnimationFrame=window[vendors[x]+'CancelAnimationFrame']||window[vendors[x]+'CancelRequestAnimationFrame'];};if(!window.requestAnimationFrame){窗口。 varcurrTime=newDate()。getTime();vartimeToCall=Math.max(0,16-(currTime-lastTime));varid=window.setTimeout(function(){callback(currTime+timeToCall);},timeToCall);lastTime=currTime+timeToCall;返回ID;};};如果(!window.cancelAnimationFrame){window.cancelAnimationFrame=函數(id){clearTimeout(id);};};};/*========================================================*//*定義畫布并初始化/*=======================================================*//如果(isCanvasSupported){varc=document.createElement('canvas');c.width=400;c。高度=100; varcw=c.width;varch=c.height;document.body.appendChild(c);varcl=newlightLoader(c,cw,ch);setupRAF();cl.init();}</script><divstyle=“position:absolute;top:0;width:100%”><divclass=“footer-banner”style=“width:728px;margin:10pxauto;color:White”>HTML5進度條請使用支持HTML5的瀏覽器查看本頁</div></div></body></html>
關于“HTML5如何實現進度條特效”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。