canvas实现城市烟花特效
代码语言:html
所属分类:粒子
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Canvas Fireworks</title> <style> html, body { margin: 0; padding: 0; } body { background: #171717; color: #999; font: 100%/18px helvetica, arial, sans-serif; } a { color: #2fa1d6; font-weight: bold; text-decoration: none; } a:hover { color: #fff; } #canvas-container { background: #000 url(http://repo.bfw.wiki/bfwrepo/images/bg.jpg); height: 400px; left: 50%; margin: -200px 0 0 -300px; position: absolute; top: 50%; width: 600px; z-index: 2; } canvas { cursor: crosshair; display: block; position: relative; z-index: 3; } canvas:active { cursor: crosshair; } #skyline { background: url(http://repo.bfw.wiki/bfwrepo/images/skyline.png) repeat-x 50% 0; bottom: 0; height: 135px; left: 0; position: absolute; width: 100%; z-index: 1; } #mountains1 { background: url(http://repo.bfw.wiki/bfwrepo/images/mountains1.png) repeat-x 40% 0; bottom: 0; height: 200px; left: 0; position: absolute; width: 100%; z-index: 1; } #mountains2 { background: url(http://repo.bfw.wiki/bfwrepo/images/mountains2.png) repeat-x 30% 0; bottom: 0; height: 250px; left: 0; position: absolute; width: 100%; z-index: 1; } #gui { right: 0; position: fixed; top: 0; z-index: 3; } </style> <script src="http://repo.bfw.wiki/bfwrepo/js/prefixfree.min.js"></script> </head> <body translate="no"> <div id="gui"></div> <div id="canvas-container"> <div id="mountains2"></div> <div id="mountains1"></div> <div id="skyline"></div> </div> <script src='http://repo.bfw.wiki/bfwrepo/js/jquery.17.js'></script> <script src='http://repo.bfw.wiki/bfwrepo/js/dat.gui.min.js'></script> <script> var Fireworks = function () { /*=============================================================================*/ /* Utility /*=============================================================================*/ var self = this; var rand = function (rMi, rMa) {return ~~(Math.random() * (rMa - rMi + 1) + rMi);}; var hitTest = function (x1, y1, w1, h1, x2, y2, w2, h2) {return !(x1 + w1 < x2 || x2 + w2 < x1 || y1 + h1 < y2 || y2 + h2 < y1);}; window.requestAnimFrame = function () {return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (a) {window.setTimeout(a, 1E3 / 60);};}(); /*=============================================================================*/ /* Initialize /*=============================================================================*/ self.init = function () { self.canvas = document.createElement('canvas'); self.canvasContainer = $('#canvas-container'); var canvasContainerDisabled = document.getElementById('canvas-container'); self.canvas.onselectstart = function () { return false; }; self.canvas.width = self.cw = 600; self.canvas.height = self.ch = 400; self.particles = []; self.partCount = 30; self.fireworks = []; self.mx = self.cw / 2; self.my = self.ch / 2; self.currentHue = 170; self.partSpeed = 5; self.partSpeedVariance = 10; self.partWind = 50; self.partFriction = 5; self.partGravity = 1; self.hueMin = 150; self.hueMax = 200; self.fworkSpeed = 2; self.fworkAccel = 4; self.hueVariance = 30; self.flickerDensity = 20; self.showShockwave = false;.........完整代码请登录后点击上方下载按钮下载查看
网友评论0