zoukankan      html  css  js  c++  java
  • 使用JS实现简单喷泉效果

    最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下:

    页面代码:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    <script src="js/particle.js" type="text/javascript" charset="utf-8"></script>

    <style type="text/css">

    body{

    margin: 0px;

    }

    </style>

    </head>

    <body>

    </body>

    </html>

    Particle.js代码如下:

    window.onload = function(){

    // 创建一个画布对象

    var canvas = document.createElement("canvas");

    // 设置大小和颜色

    canvas.width = window.innerWidth;

    canvas.height = window.innerHeight;

    canvas.style.backgroundColor = "#333333";

    // 将画布放置到body里

    document.body.appendChild(canvas);

    // 得到画笔

    var context = canvas.getContext("2d");

    // 定义一个存放所有粒子的数组

    var particles = [ ];

    // 调用显示粒子

    showParticle();

    // 创建并显示粒子的方法

    function showParticle(){

    // 循环操作

    setInterval(function(){

    // 清空画布

    context.clearRect(0,0,canvas.width, canvas.height);

    // 创建粒子

    var p = new Particle(canvas.width * 0.5, canvas.height * 0.5);

    // 将粒子装入存放粒子的数组

    particles.push(p);

    // 循环更新所有粒子的位置

    for (var i = 0;i<particles.length;i++) {

    // 更新位置

    particles[i].updateData();

    }

    }, 50);

    }

    function Particle(x, y){

    // 原坐标

    this.x = x;

    this.y = y;

    // 初始出现的改变的y的值

    this.yVal = -5;

    // 改变的x的值

    this.xVal = Math.random() * 8 - 4;

    // 定义一个下降的重力加速度

    this.g = 0.1;

    // 更新位置

    this.updateData = function(){

    // X值的变化

    this.x = this.x + this.xVal;

    // Y值的变化

    this.y = this.y + this.yVal;

    // 每次改变Y值速度的变化

    this.yVal = this.yVal + this.g;

    // 生成一个随机颜色

    context.fillStyle = "#" + Math.floor(Math.random() * 0xffffff).toString(16);

    // 将更新位置后的圆绘制出来

    this.draw();

    };

    // 绘图的方法

    this.draw = function(){

    // 开始画图

    context.beginPath();

    // 画圆

    context.arc(this.x, this.y,5,0,Math.PI * 2, false);

    // 结束画图

    context.closePath();

    // 填充

    context.fill();

    };

    }

    };

  • 相关阅读:
    Linux学习(三十一)系统日志
    Linux学习(三十)rsync的使用
    php检测文字编码的方法
    Phpexcel使用
    高并发秒杀解决方案(转载)
    通过CSS选择器查找元素
    通过PartiaLinkText查找元素
    通过LinkText查找元素
    通过TagName查找元素
    通过ClassNmae查找元素
  • 原文地址:https://www.cnblogs.com/qfchen/p/11133076.html
Copyright © 2011-2022 走看看