{"version":3,"sources":["jsdelivr-header.js","/npm/fireworks-effect@0.0.1/lib/fireworks.js"],"names":[],"mappings":"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","file":"/npm/fireworks-effect@0.0.1/lib/fireworks.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/fireworks-effect@0.0.1/lib/fireworks.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\n(function (){\n    var canvas;\n    var cvs;\n    var fireworks = [];\n    var W, H;\n\n    var config = {\n        speed : 50,\n        autoPlay: true,\n        spaceTime : 2000,\n        containerId : null\n    };\n    var isCreate = false;\n\n    var FireWorks = {\n        assign : function (target, origin){\n            for (var t in target) {\n                origin[t] = target[t];\n            }\n        },\n        start: function (_config) {\n            if(arguments.length >= 1) {\n                this.assign(_config, config);\n            }\n            if (!isCreate) {\n                var container;\n                if (config.containerId == null) {\n                   container = document.createElement(\"div\");\n                    container.style.position = \"absolute\";\n                    container.style.left = \"0px\";\n                    container.style.top = \"0px\";\n                    container.style.zIndex = 9999;\n                } else {\n                    container = document.getElementById(config.containerId);\n                }\n                canvas = document.createElement(\"canvas\");\n                container.appendChild(canvas)\n                document.body.appendChild(container);\n                isCreate = true;\n            }\n            cvs = canvas.getContext('2d')\n            this.init();\n        },\n        createBoom : function (x, y){\n            var q = [],\n                r = this.rnd(255) | 0,\n                g = this.rnd(255) | 0,\n                b = this.rnd(255) | 0;\n            for (var i = 0; i < this.rnd(16) + 15; i++) q.push(this.createPT(x, y, r, g, b));\n            fireworks.push(q);\n        },\n        rnd : function (n) {\n            return (n || 1) * Math.random();\n        },\n        dq : function (ar, z, r, g, b) {\n            cvs.save();\n            //绘制轨迹。思路是每次都绘制一条透明的轨迹，叠加起来形成一条渐变的样子\n            for (var i = 0; i < ar.length; i++) {\n                cvs.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + Math.abs(.2 * z) + ')';\n                cvs.lineWidth = Math.min(i + 1, 4) * 2;\n                cvs.beginPath();\n                cvs.moveTo(ar[i][0], ar[i][1]);\n                for (var j = i + 1; j < ar.length; j++) cvs.lineTo(ar[j][0], ar[j][1]);\n                cvs.stroke();\n            }\n            cvs.restore();\n        },\n        createPT : function (x, y, r, g, b) {\n            return {\n                r: r, g: g, b: b,\n                x: x, y: y,\n                //轨迹序列\n                pl: [],\n                dx: this.rnd(20) - 10,\n                dy: this.rnd(10) - 7,\n                life: 30 + this.rnd(30),\n                //移动函数，修改加速度和坐标\n                move: function () {\n                    this.dx *= .98;\n                    this.dy *= .98;\n                    this.dy += .22;\n                    this.x += this.dx;\n                    this.y += this.dy;\n                    this.pl.push([this.x, this.y]);\n                    //保持轨迹长度\n                    if (this.pl.length > 10) this.pl.shift();\n                    this.life--;\n                }\n            };\n        },\n\n        init: function () {\n            var _this = this;\n            //随着窗口调整画布大小\n            var up = 0;\n            (onresize = function() {\n                canvas.width = W = document.documentElement.clientWidth;\n                canvas.height = H = document.documentElement.clientHeight;\n            })();\n            //生成一个烟花\n            setInterval(function () {\n                cvs.clearRect(0, 0, W, H);\n                //依次绘制烟火\n                for (var n = 0; n < fireworks.length; n++) {\n                    var q = fireworks[n];\n                    for (var i = 0; i < q.length; i++) {\n                        var pt = q[i];\n                        pt.move();\n                        _this.dq(pt.pl, pt.life / 30, pt.r, pt.g, pt.b);\n                        //超过生存周期就消失 柯 乐 义\n                        if (pt.life <= 0) q.splice(i, 1);\n                    }\n                    //当一个烟火包含的烟花个数为零，则消灭这个烟火\n                    if (!fireworks[n].length) fireworks.splice(n, 1);\n                }\n                if (config.autoPlay) {\n                    //每隔一段时间添加一个新烟火\n                    if (new Date - up < config.spaceTime + _this.rnd(config.spaceTime)) return;\n                    up = new Date;\n                    _this.fireworks();\n                }\n            }, config.speed);\n        },\n        fireworks : function () {\n            this.createBoom(this.rnd(W / 2) + W / 4, this.rnd(50) + 50);\n        }\n    };\n    module.exports  = FireWorks;\n})();\n\n\n\n\n\n\n\n        "]}