iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在HTML5中实现一个超炫酷粒子效果的进度条
  • 307
分享到

如何在HTML5中实现一个超炫酷粒子效果的进度条

2023-06-09 12:06:42 307人浏览 安东尼
摘要

如何在HTML5中实现一个超炫酷粒子效果的进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。javascript代码  var lightL

如何在HTML5中实现一个超炫酷粒子效果的进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

javascript代码

  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;                  this.init = function(){        this.loop();    };                                this.rand = function(rMi, rMa){return ~~((Math.random()*(rMa-rMi+1))+rMi);};    this.hitTest = function(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);        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);    };                  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();                                                 };                      };                this.clearcanvas = function(){        this.ctx.globalCompositeOperation = 'source-over';        this.ctx.clearRect(0,0,this.cw,this.ch);                            this.ctx.globalCompositeOperation = 'lighter';    };                this.loop = function(){        var loopIt = function(){            requestAnimationFrame(loopIt, _this.c);            _this.clearCanvas();            _this.createParticles();            _this.updateLoader();            _this.updateParticles();            _this.renderLoader();            _this.renderParticles();        };        loopIt();                       };};    var isCanvasSupported = function(){    var elem = document.createElement('canvas');    return !!(elem.getContext && elem.getContext('2d'));};    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);        };    };};              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中实现一个超炫酷粒子效果的进度条问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何在HTML5中实现一个超炫酷粒子效果的进度条

本文链接: https://www.lsjlt.com/news/255985.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在HTML5中实现一个超炫酷粒子效果的进度条
    如何在HTML5中实现一个超炫酷粒子效果的进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript代码  var lightL...
    99+
    2023-06-09
  • Android中怎么实现一个炫酷进度条效果
    这期内容当中小编将会给大家带来有关Android中怎么实现一个炫酷进度条效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。HorizontalProgressbarWithProgress的代码impor...
    99+
    2023-05-30
    android
  • JavaScript如何实现带粒子效果的进度条
    这篇文章主要讲解了“JavaScript如何实现带粒子效果的进度条”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现带粒子效果的进度条”吧!具体代码如下<htm...
    99+
    2023-07-02
  • JavaScript实现带粒子效果的进度条
    本文实例为大家分享了JavaScript实现带粒子效果进度条的具体代码,供大家参考,具体内容如下 <html>     <head>         <...
    99+
    2024-04-02
  • HTML5中Canvas如何实现酷炫大波浪进度图效果
    这篇文章主要介绍了HTML5中Canvas如何实现酷炫大波浪进度图效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解...
    99+
    2024-04-02
  • 怎么用HTML5的canvas实现一个炫酷时钟效果
    小编给大家分享一下怎么用HTML5的canvas实现一个炫酷时钟效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于H5来说,canvas可以说是它最有特色的一...
    99+
    2023-06-09
  • 使用Canvas怎么实现一个炫丽的粒子运动效果
    使用Canvas怎么实现一个炫丽的粒子运动效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html 代码<!DOCTYPE html>&...
    99+
    2023-06-09
  • 如何在html中实现进度条效果
    今天就跟大家聊聊有关如何在html中实现进度条效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<progress> 标签定义运行中的任务进度(进程)。下载进度:<...
    99+
    2023-06-15
  • C# 中怎么实现一个进度条效果
    本篇文章给大家分享的是有关C# 中怎么实现一个进度条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C# 进度条效果实现实例源码:public class ...
    99+
    2023-06-17
  • C#中怎么实现一个进度条效果
    今天就跟大家聊聊有关C#中怎么实现一个进度条效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。using System;   using&nb...
    99+
    2023-06-17
  • AJAX中怎么实现一个进度条效果
    AJAX中怎么实现一个进度条效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 效果如下: 代码如...
    99+
    2024-04-02
  • shell 中怎么实现一个进度条效果
    本篇文章为大家展示了shell 中怎么实现一个进度条效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:#!/bin/bashCOUNTER=0_R=0_C=`tput cols`_PROC...
    99+
    2023-06-09
  • 怎么在CSS3中实现一个酷炫的3D旋转透视效果
    本篇文章给大家分享的是有关怎么在CSS3中实现一个酷炫的3D旋转透视效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。CSS3 3D 转换的常用API介绍首先先上一张css 3...
    99+
    2023-06-08
  • C#中怎么利用 WinForm实现一个进度条效果
    C#中怎么利用 WinForm实现一个进度条效果,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox。除此外,还要...
    99+
    2023-06-17
  • HTML5如何实现自带进度条和滑块滑杆效果
    小编给大家分享一下HTML5如何实现自带进度条和滑块滑杆效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、H5自带进度条 <div id="d"> &nbs...
    99+
    2023-06-09
  • C#中怎么利用异步实现一个进度条效果
    本篇文章给大家分享的是有关C#中怎么利用异步实现一个进度条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#进度条实现之异步实例进度条页面://==============...
    99+
    2023-06-17
  • 如何使用JS+CSS实现一个简单加载进度条的效果
    这篇文章主要讲解了“如何使用JS+CSS实现一个简单加载进度条的效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用JS+CSS实现一个简单加载进度条的效果”吧!一、前言我们经常在网页...
    99+
    2023-06-15
  • 怎么在Android中通过自定义View实现一个环形进度条效果
    这篇文章给大家介绍怎么在Android中通过自定义View实现一个环形进度条效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。功能分析虽然功能比较简单,但是仍然需要仔细分析    ...
    99+
    2023-05-31
    android view roi
  • 计算机中如何实现批处理进度条效果
    这篇文章主要介绍了计算机中如何实现批处理进度条效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、批处理文件实现进度条的效果一@echo off mod...
    99+
    2023-06-08
  • 如何在Android应用中利用节点实现一个进度条
    如何在Android应用中利用节点实现一个进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。main.xml<RelativeLayout xmlns:a...
    99+
    2023-05-31
    android 节点 roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作