• Javascript学习--烟花


    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title>烟花-喷泉</title>
            <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
            <style type="text/css">
                * {
                    padding: 0;
                    margin: 0;
                }
                
                html,
                body {
                    position: relative;
                    width: 100%;
                    height: 100%;
                }
                
                body {
                    background: #eee;
                }
                
                canvas {
                    background: black;
                    display: block;
                    position: absolute;
                    left: 50%;
                    top: 50%;
                    transform: translate(-50%, -50%);
                }
            </style>
        </head>
    
        <body>
            <canvas id="c"></canvas>
            <script type="text/javascript">
                ;
                (function(main) {
                    main();
                })(function() {
                    'use strict';
                    var c = document.getElementById('c');
                    var ctx = c.getContext('2d');
                    var W = c.width = window.innerWidth;
                    var H = c.height = window.innerHeight;
                    var CX = W / 2;
                    var CY = H / 2;
    
                    var Particle = function(x, y, vx, vy) {
                        this.x = x;
                        this.y = y;
                        this.ox = x;
                        this.oy = y;
                        this.vx = vx;
                        this.vy = vy;
                        this.alpha = Math.random();
                        this.color = 25;
                        this.lineWidth = Math.random() * 5;
                    };
    
                    Particle.prototype = {
                        constructor: Particle,
                        update: function() {
                            this.vx += Math.random() * 0.5 - 0.25;
                            this.vy += 0.8;
                            this.vy *= 0.98;
                            this.alpha *= 0.95;
    
                            this.ox = this.x;
                            this.oy = this.y;
                            this.x += this.vx;
                            this.y += this.vy;
    
                            if(this.y < 0 || this.y > H || this.alpha < 0.1) {
                                this.vx = Math.random() * 2 - 1;
                                this.vy = Math.random() * -50;
                                this.ox = this.x = CX;
                                this.oy = this.y = H;
                                this.alpha = Math.random();
                            }
                        },
                        render: function(ctx) {
                            ctx.save();
                            ctx.globalAlpha = 0.98;
                            ctx.lineWidth = this.lineWidth;
                            ctx.strokeStyle = 'hsla(' + (this.color) + ',100%,50%,' + this.alpha + ')';
                            ctx.beginPath();
                            ctx.moveTo(this.ox, this.oy);
                            ctx.lineTo(this.x, this.y);
                            ctx.stroke();
                            ctx.restore();
                        }
                    };
    
                    var particleCount = 500;
                    var particle = null;
                    var particles = [];
                    var interval = 0;
                    for(var i = 0; i < 250; i++) {
                        particle = new Particle(CX, H, Math.random() * 2 - 1, Math.random() * -50);
                        particles.push(particle);
                    }
    
                    requestAnimationFrame(function loop() {
                        requestAnimationFrame(loop);
                        ctx.globalCompositeOperation = 'source-over';
                        ctx.fillStyle = 'rgba(0,0,0,0.1)';
                        ctx.fillRect(0, 0, W, H);
                        ctx.globalCompositeOperation = 'lighter';
                        if(particles.length < particleCount) {
                            particle = new Particle(CX, H, Math.random() * 2 - 1, Math.random() * -50);
                            particles.push(particle);
                        }
    
                        for(var i = 0, len = particles.length; i < len; i++) {
                            particle = particles[i];
                            particle.update();
                            particle.render(ctx);
                        }
                    });
                });
            </script>
        </body>
    </html>
  • 相关阅读:
    获取连接无线路由客户机信息命令
    HTB进行流量控制方法
    exec函数族用法
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    struts2从请求取值的三种方式
    用jsp写的网页 怎么在传递参数时包含中文?
    Struts2使用DoubleSelect实现二级级联下拉框省份城市
    MySQL里主键与外键的关系
    查看struts2源码
    WIN7系统下,用笔记本发送WIFI信号让手机无线上网!
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/7867804.html
Copyright © 2020-2023  润新知