canvas实现彩色线条绘制屏保动画效果代码
代码语言:html
所属分类:动画
代码描述:canvas实现彩色线条绘制屏保动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { background: black; color: white; } </style> </head> <body translate="no"> <script > const particles = 4; const minD = 0.05; // min/max distance const maxD = 1; const maxV = 20; // max velocity const maxF = 10; // max force const F = 0.0186125; // attraction force const G = 0.003; // gravity const canvas = document.createElement("canvas"); canvas.style.position = "absolute"; canvas.style.top = canvas.style.left = 0; document.body.appendChild(canvas); const buffer = document.createElement("canvas"); const bufferCtx = buffer.getContext("2d"); const ctx = canvas.getContext("2d"); let w, h, hw, hh; const PI2 = Math.PI * 2; const random = (min = -1, max = 1) => Math.random() * (max - min) + min; const resize = () => { w = Math.max(innerWidth, 1) - innerWidth % 2; h = Math.max(innerHeight, 1) - innerHeight % 2; hw = w / 2; hh = h / 2; canvas.width = buffer.width = w; canvas.height = buffer.height = h; initContext(); }; const initContext = () => { ctx.translate(hw, hh); ctx.fillStyle = "white"; ctx.strokeStyle = "white"; ctx.lineWidth = 1.3; ctx.fillRect(-hw, -hh, w, h); bufferCtx.fillStyle = "black"; bufferCtx.fillRect(0, 0, w, h); }; resize(false); const debounce = (fn, delay) => { let timeout; return () => { if (time.........完整代码请登录后点击上方下载按钮下载查看
网友评论0