HTML5超炫酷粒子效果的进度条

本文由码农网 –
小峰原创,转发请看清文末的转发要求,应接参加大家的澳门新浦京电子游戏,付费投稿安顿!

HTML5确实拾叁分刚劲,比很多时候大家还可以HTML5中的新技艺达成丰硕光彩夺目的粒子动漫效果,粒子动漫在HTML5行使中也是相比消耗本地财富的,越发是CPU,可是有个别HTML5粒子效果的确能给客户带来不均等的惊艳客商体验。本文正是要享用8款效果惊艳的HTML5粒子动画特效,希望您能够欣赏。

这是后生可畏款基于HTML5和JavaScript的进度条应用,那款进程条插件极度常有风味,它在速度显示的时候呈现粒子的卡通片效果,相当于说,进程条在滑行的还要,会爆发局地小粒子掉落下来,效果超帅。其它还会有二个表征是随着速度的浮动,进程条的颜料也会转换。

1、HTML5 Canvas粒子模拟效果

那是生机勃勃款使用HTML5
Canvas模拟出来的30000个粒子动画,当您用鼠标在canvas画布上运动时,鼠标周边的有的粒子就能够跟着你运动,并变成一定的美术,好似您在玩沙画同样,效果非常不错。这里,大家接纳了有的HTML5的特点,让那几个粒子动漫显得格外振作振作。

在线演示 / 源码下载

澳门新浦京电子游戏 1

2、HTML5 Canvas生成粒子效果的人物头像

前边大家分享过三个HTML5
Canvas实现的图像武Hank模糊效果,HTML5甩卖图片真的极度轻易。后天大家要再接收HTML5
Canvas完毕三个粒子效果的人物头像,你能够专擅选用一张头像图片,接下去该图片会被打垮成大多粒子,然后稳步的三结合成图片,鼠标滑过图片时粒子还只怕会产出转移的动漫特效,看上去优异酷。

在线演示 / 源码下载

在线演示源码下载

3、HTML5 Canvas达成会跳舞的岁月动漫

那是生龙活虎款很有趣的HTML5
Canvas时间动画,总体来讲,它是一个方可和顾客端一同的手表,其性状是这时直接触时,数字将会分散成二个个粒子动画,这种HTML5
Canvas动画在头里也会有分享过,比方这几个HTML5粒子文字特效。

在线演示 / 源码下载

JavaScript代码

/*========================================================*/  
/* Light Loader
/*========================================================*/
var lightLoader = function(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 = .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 = 0
    this.hueEnd = 120;
    this.hue = 0;
    this.gravity = .15;
    this.particleRate = 4;  

    /*========================================================*/    
    /* Initialize
    /*========================================================*/
    this.init = function(){
        this.loop();
    };

    /*========================================================*/    
    /* Utility Functions
    /*========================================================*/                
    this.rand = function(rMi, rMa){return ~~((Math.random()*(rMa-rMi+1))+rMi);};
    this.hitTest = function(x1, y1, w1, h1, x2, y2, w2, h2){return !(x1 + w1 < x2 || x2 + w2 < x1 || y1 + h1 < y2 || y2 + h2 < y1);};

    /*========================================================*/    
    /* Update Loader
    /*========================================================*/
    this.updateLoader = function(){
        if(this.loaded < 100){
            this.loaded += this.loaderSpeed;
        } else {
            this.loaded = 0;
        }
    };

    /*========================================================*/    
    /* Render Loader
    /*========================================================*/
    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);

        var newWidth = (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);
    };  

    /*========================================================*/    
    /* Particles
    /*========================================================*/
    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;

        if(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(){
        var i = this.particleRate;
        while(i--){
            this.particles.push(new this.Particle());
        };
    };

    this.updateParticles = function(){                  
        var i = this.particles.length;                      
        while(i--){
            var p = this.particles[i];
            p.update(i);                                            
        };                      
    };

    this.renderParticles = function(){
        var i = this.particles.length;                      
        while(i--){
            var p = this.particles[i];
            p.render();                                         
        };                  
    };

    /*========================================================*/    
    /* Clear Canvas
    /*========================================================*/
    this.clearCanvas = function(){
        this.ctx.globalCompositeOperation = 'source-over';
        this.ctx.clearRect(0,0,this.cw,this.ch);                    
        this.ctx.globalCompositeOperation = 'lighter';
    };

    /*========================================================*/    
    /* Animation Loop
    /*========================================================*/
    this.loop = function(){
        var loopIt = function(){
            requestAnimationFrame(loopIt, _this.c);
            _this.clearCanvas();

            _this.createParticles();

            _this.updateLoader();
            _this.updateParticles();

            _this.renderLoader();
            _this.renderParticles();

        };
        loopIt();                   
    };

};

/*========================================================*/    
/* Check Canvas Support
/*========================================================*/
var isCanvasSupported = function(){
    var elem = document.createElement('canvas');
    return !!(elem.getContext && elem.getContext('2d'));
};

/*========================================================*/    
/* Setup requestAnimationFrame
/*========================================================*/
var setupRAF = function(){
    var lastTime = 0;
    var vendors = ['ms', 'moz', 'webkit', 'o'];
    for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x){
        window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
        window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame'];
    };

    if(!window.requestAnimationFrame){
        window.requestAnimationFrame = function(callback, element){
            var currTime = new Date().getTime();
            var timeToCall = Math.max(0, 16 - (currTime - lastTime));
            var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);
            lastTime = currTime + timeToCall;
            return id;
        };
    };

    if (!window.cancelAnimationFrame){
        window.cancelAnimationFrame = function(id){
            clearTimeout(id);
        };
    };
};          

/*========================================================*/    
/* Define Canvas and Initialize
/*========================================================*/
if(isCanvasSupported){
  var c = document.createElement('canvas');
  c.width = 400;
  c.height = 100;           
  var cw = c.width;
  var ch = c.height;    
  document.body.appendChild(c); 
  var cl = new lightLoader(c, cw, ch);              

  setupRAF();
  cl.init();
}

在线演示源码下载

上述那款炫目的HTML5进程条动漫可以动用在区别风格的村办博客页面加载中,希望您赏识。

4、HTML5 Canvas粒子效果文字动画特效

事前大家大饱眼福过无数超酷的文字特效,在那之中也许有接纳HTML5和CSS3的。明天大家要来分享生机勃勃款基于HTML5
Canvas的文字特效,输入框中输入想要显示的文字,回车的后边就可以在canvas上绘制出粒子效果的文字动漫,太帅的动画效果。

在线演示 / 源码下载

5、HTML5火花文字特效

从前大家享受过无数根据HTML5和CSS3的文字特效,有3D的文字效果,也可以有动漫文字特效。明天大家共享的那款HTML5文字特效是火焰焚烧的职能,相比较消耗CPU,然则动漫效果照旧比较酷的。其余,再引入生机勃勃款HTML5文字特效:HTML5像素文字爆炸重新整合动画特效

在线演示 / 源码下载

6、HTML5/CSS3粒子效果进程条 超炫目进程条动漫

事情发生前自个儿早就享受了三款效果十分不利的CSS3进度条插件,比方CSS3
Loading进程条加载动画特效、CSS3
3D进度条按键18款不错样式。前几日作者再来分享生龙活虎款很有特点的HTML5/CSS3进程条应用。那款进程条插件在广播进程进度中现身粒子效果,就像是一些小颗粒从进程条上散落下来,是大器晚成款别具特色的HTML5进程条插件。

在线演示 / 源码下载

7、HTML5粒子效果的文字动漫特效

回忆早先向大家狼吞虎咽过大器晚成款HTML5
Canvas达成会跳舞的日子动漫,利用了HTML5的粒子动画性情。明天要共享的也是生龙活虎款基于HTML5的粒子效果的文字动漫特效,并且它能够兑现每种文字的逐帧播放,产生一句很性感的诗句。

在线演示 / 源码下载

8、HTML5 Canvas 3D 倒计时爆炸特效

明天要分享的那款 HTML5 3D 动漫特效特别给力,它是叁个基于Canvas
的倒计时爆炸效果,随着时间的过往,时间数字傍边就能有爆炸的特效,一堆像素点就能够在数字为主产生出来,以为分外酷。况且采取了
HTML5 的 3D 性格,让整贰个时钟显得非常有立体感。

在线演示 / 源码下载

以上就是8款惊艳的HTML5粒子动画特效,款待共享收藏。

发表评论

电子邮件地址不会被公开。 必填项已用*标注