js实现canvas鼠标撩动垂柳自然摆动动画效果代码
代码语言:html
所属分类:动画
代码描述:js实现canvas鼠标撩动垂柳自然摆动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<html> <head> <style> html, body { margin: 0; padding: 0; height: 100%; } body { user-select: none; background-color: #000; display: flex; align-items: center; justify-content: center; overflow: hidden; } canvas { flex-shrink: 0; background-color: #222; image-rendering: -moz-crisp-edges; image-rendering: -webkit-crisp-edges; image-rendering: pixelated; object-fit: contain; } #message { color: white; font-family: sans-serif; position: absolute; left: 50%; top: 40%; transform: translate(-50%,-50%); text-align: center; } h1,h4 { margin: 0; } h1 { font-size: 10vmin; } h4 { font-size: 4vmin; } </style> </head> <body> <div></div> <script> function lerpColor(a, b, amount) { var ah = parseInt(a.replace(/#/g, ""), 16), ar = ah >> 16, ag = (ah >> 8) & 0xff, ab = ah & 0xff, bh = parseInt(b.replace(/#/g, ""), 16), br = bh >> 16, bg = (bh >> 8) & 0xff, bb = bh & 0xff, rr = ar + amount * (br - ar), rg = ag + amount * (bg - ag), rb = ab + amount * (bb - ab); return ( "#" + (((1 << 24) + (rr << 16) + (rg << 8) + rb) | 0).toString(16).slice(1) ); } const PI = Math.PI, TWO_PI = Math.PI * 2; const Util = {}; Util.timeStamp = function() { return window.performance.now(); }; Util.random = function(min, max) { return min + Math.random() * (max - min); }; Util.map = function(a, b, c, d, e) { return (a - b) / (c - b) * (e - d) + d; }; Util.lerp = function(value1, value2, amount) { return value1 + (value2 - value1) * amount; }; Util.clamp = function(value, min, max) { return Math.max(min, Math.min(max, value)); }; const Tween = {}; Tween.linear = function(currentTime, start, degreeOfChange, duration) { return degreeOfChange * currentTime / duration + start; }; Tween.easeInOutQuad = function(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1).........完整代码请登录后点击上方下载按钮下载查看
网友评论0