流体动画特效
代码语言:html
所属分类:动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> body { margin: 0; height: 100vh; overflow: hidden; background: black; } </style> </head> <body translate="no"> <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/p5.js"></script> <script> /*-------------------- Vars --------------------*/ const deg = (a) => Math.PI / 180 * a const rand = (v1, v2) => Math.floor(v1 + Math.random() * (v2 - v1)) const opt = { particles: window.width / 500 ? 1000 : 500, noiseScale: 0.009, angle: Math.PI / 180 * -90, h1: rand(0, 360), h2: rand(0, 360), s1: rand(20, 90), s2: rand(20, 90), l1: rand(30, 80), l2: rand(30, 80), strokeWeight: 1.2, tail: 82, } const Particles = [] let time = 0 document.body.addEventListener('click', () => { opt.h1 = rand(0, 360) opt.h2 = rand(0, 360) opt.s1 = rand(20, 90) opt.s2 = rand(20, 90) opt.l1 = rand(30, 80) opt.l2 = rand(30, 80) opt.angle += deg(random(60, 60)) * (Math.random() > .5 ? 1 : -1) for (let p of Particles) { p.randomize() } }) /*-------------------- Particle --------------------*/ class Particle { constructor(x, y) { this.x = x this.y = y this.lx = x this.ly = y this.vx = 0 this.vy = 0 this.ax = 0 this.ay = 0 this.hueSemen = Math.random() this.hue = this.hueSemen > .5 ? 20 + opt.h1 : 20 + opt.h2 this.sat = this.hueSemen > .5 ? opt.s1 : opt.s2 this.light = this.hueSemen > .5 ? opt.l1 : opt.l2 this.maxSpeed = this.hueSemen > .5 ? 3 : 2 } randomize() { this.hueSemen = Math.random() this.hue = this.hueSemen > .5 ? 20 + opt.h1 : 20 + opt.h2 this.sat = this.hueSemen > .5 ? opt.s1 : opt.s2 this.light = this.hueSemen > ..........完整代码请登录后点击上方下载按钮下载查看
网友评论0