JS实现烟花爆炸效果

本文实例为大家分享了JS实现烟花爆炸的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    html, body {
      width: 100%;
      height: 100%;
      background-color: black;
      overflow: hidden;
    }
  </style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
  var canvas = document.getElementById("canvas");
  canvas.width = window.innerWidth;
  canvas.height = window.innerHeight;
  var content2d = canvas.getContext("2d");
  var balls = []; //存储对象
  //小球的基本属性
  function ball() {
    this.x = null;
    this.y = null;
    this.angle = null;
    this.vx=null;
    this.vy=null;
    this.r = null;
    this.color = null;
    this.init = function (x, y) {
      //初始化属性值
      this.x = x;
      this.y = y;
      //随机角度
      this.angle = Math.random() * Math.PI * 2;
      //随机小球的大小
      this.r = this.randomNum(10,25);
      this.vx=(this.randomNum(6,12)+Math.random()*0.5)*Math.cos(this.angle);
      this.vy=(this.randomNum(6,12)+Math.random()*0.5)*Math.sin(this.angle);
      this.color = this.randomColor();
    };
    //随机小球颜色
    this.randomColor = function () {
      return "#" + parseInt(Math.random() * 16777216).toString(16);
    };
    //随机大小
    this.randomNum = function (min, max) {
      return Math.random() * max + min;
    };
    //重绘时需移动
    this.move=function(){
      this.x+=this.vx;
      this.y+=this.vy;
      this.r-=0.3;
      this.vx*=0.93;
      this.vy*=0.93;
    }
  }
  //创建小球
  function createBall(x, y) {
    var count = parseInt(Math.random() * 30 + 10);
    for (var i = 0; i < count; i++) {
      var b = new ball();
      b.init(x, y);
      balls.push(b);
    }
  }
  //画小球
  function Draw(){
    for(var i=0;i<balls.length;i++){
      var circle=balls[i];
      circle.move();
      content2d.beginPath();
      content2d.fillStyle=circle.color;
      content2d.arc(circle.x,circle.y,circle.r,0,Math.PI*2);
      content2d.fill();
      content2d.closePath();
    }
  }
  //移除小球
  function removeBall(){
    for(var i=0;i<balls.length;i++){
      var circle=balls[i];
      if(circle.r<0.3){
        balls.splice(i,1);
        i--;
      }
    }
  }
  //计时器,即重绘
  loop();
  function loop(){
    //清除整个canvas
    content2d.clearRect(0,0,canvas.width,canvas.height);
    Draw();
    removeBall();
    window.requestAnimationFrame(loop);
  }
  canvas.onmouseup = function (e) {
    var x = e.pageX;
    var y = e.pageY;
    createBall(x, y);
  }
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JS基于面向对象实现的放烟花效果

    本文实例讲述了JS基于面向对象实现的放烟花效果.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

  • 原生Js实现简易烟花爆炸效果的方法

    本文实例讲述了原生Js实现简易烟花爆炸效果的方法.分享给大家供大家参考.具体分析如下: 实现原理: 在一定范围内,随机生成一些div,形成烟花效果 复制代码 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>js烟花效果</title> <script type="text/javascript"> d

  • JS实现网页烟花动画效果

    原生js实现放烟花效果,点击鼠标,然后向四周扩散,最后自由落体效果!最简单的方法实现! 效果图: CSS代码: *{ padding: 0px; margin: 0px; background: #000; } .firworks{ width: 6px; height: 6px; position: absolute; } js代码: <script type="text/javascript"> //封装一个颜色随机的效果 function randomColor(){

  • js实现烟花特效

    本文实例为大家分享了js实现烟花特效的具体代码,供大家参考,具体内容如下 1.概述 在网页背景中实现鼠标点击出现模拟烟花爆炸的特效 2.思路 1.获取鼠标点击位置,底端创建烟花节点. 2.为烟花添加css属性,烟花节点从下至上运动. 3.运动至鼠标位置时移除烟花节点,同时生成多个烟花碎片. 4.为不同的烟花碎片随机生成不同的颜色.运动速度.运动方向. 5.烟花碎片超出屏幕显示部分时移除. 3.代码部分 <!DOCTYPE html> <html lang="en"&g

  • javascript实现超好看的3D烟花特效

    本文实例为大家分享了超好看3D烟花的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <head> <meta charset="utf-8"> <title>3D烟花</title> <style> html,body{ margin:0px; width:100%; height:100%; overflow:hidden; background:#000; } #c

  • javascript实现网页背景烟花效果的方法

    本文实例讲述了javascript实现网页背景烟花效果的方法.分享给大家供大家参考.具体如下: 这里的网页背景烟花爆炸特效,不用说是用Js实现的,配合黑色背景效果最好,五颜六色的烟花效果,四散的烟花效果,以前发过一些网页上的烟花特效,本款类似,但代码更简洁. 运行效果如下图所示: 具体代码如下: <html> <head> <title>背景的烟花效果</title> <style type="text/css"> <!

  • 用p5.js制作烟花特效的示例代码

    前言 之前看过一篇文章,使用processing制作烟花特效.效果如下 fireworks 网上调查了一圈了,发现processing是一个互动编程软件,java语言发展而来.而且动画效果是跑在processing专门的模拟器上. 不过好在也有对应的web扩展语言,有processing.js和p5.js. processing.js在github上已经好几年没有人维护了,一些processing的特性支持不了.为此踩了不少坑, 本文就集中讲解如何用p5.js写烟花特效. 代码讲解 proces

  • 新年快乐! javascript实现超级炫酷的3D烟花特效

    本文实例为大家分享了javascript实现3D烟花特效的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <meta charset="utf-8"> <title>3D烟花</title> <style> html,b

  • JS烟花背景效果实现方法

    本文实例讲述了JS烟花背景效果实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"

  • JavaScript实现的简单烟花特效代码

    本文实例讲述了JavaScript实现的简单烟花特效代码.分享给大家供大家参考,具体如下: 这是一款JavaScript烟花特效,过年的时候放到你的网页上祝贺大家牛年大吉吧,是不是很不错? 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-yh-explode-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &

随机推荐