Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
html, body { margin: 0; padding: 0; overflow: hidden; } .container { width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; }
JavaScript
/* global dat: false */ const q = (sel) => document.querySelector(sel); const canvas = q('canvas'); const ctx = canvas.getContext('2d'); let width = window.innerWidth; let height = window.innerHeight; canvas.width = width; canvas.height = height; let particles = []; let phase = Math.random() * Math.PI; const getValue = (x, y) => { const { a, b, c, d } = settings; const scale = 0.008; x = (x - width / 2) * scale; y = (y - height / 2) * scale; // clifford // http://paulbourke.net/fractals/clifford/ // const x1 = Math.sin(a * y) + c * Math.cos(a * x); // const y1 = Math.sin(b * x) + d * Math.cos(a * y); // peter de jong // http://paulbourke.net/fractals/peterdejong/ const x1 = Math.sin(a * y) - Math.cos(b * x); const y1 = Math.sin(c * x) - Math.cos(d * y); return Math.atan2(y1 - y, x1 - x); }; const render = (ctx, p, phase) => { const value = getValue(p.x, p.y); const hue = 180 + (180 * Math.sin(phase)); const a = particles.length / (p.index + 1); ctx.save(); ctx.lineWidth = 0.25; ctx.strokeStyle = `hsla(${hue}, 50%, 50%, ${a})`; ctx.beginPath(); ctx.moveTo(p.x, p.y); p.update(value); ctx.lineTo(p.x, p.y); ctx.stroke(); ctx.closePath(); ctx.restore(); }; const reset = () => { width = window.innerWidth; height = window.innerHeight; canvas.width = width; canvas.height = height; ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); particles = []; let y = height * 0.125; for (let i = 0; i < height * 0.75; i += 2) { particles.push({ x: 0, y: y + i, vx: 0, vy: 0, index: i, update(noiseValue) { this.vx += Math.cos(noiseValue) * 0.3; this.vy += Math.sin(noiseValue) * 0.3; this.x += this.vx; this.y += this.vy; this.vx *= 0.99; this.vy *= 0.99; }, }); } phase = Math.random() * Math.PI; }; const clear = () => { ctx.fillStyle = 'hsla(0, 0%, 100%, 0.009)'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); }; const run = () => { clear(); particles.forEach(p => render(ctx, p, phase)); phase += 0.001; requestAnimationFrame(run); }; const settings = { a: -0.99, b: 1, c: 1.34, d: -1.7, reset, }; const gui = new dat.GUI(); gui.add(settings, 'a', -3, 3).step(0.01).onChange(reset); gui.add(settings, 'b', -3, 3).step(0.01).onChange(reset); gui.add(settings, 'c', -3, 3).step(0.01).onChange(reset); gui.add(settings, 'd', -3, 3).step(0.01).onChange(reset); gui.add(settings, 'reset'); gui.close(); window.addEventListener('resize', reset); reset(); run();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>流场-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号