anime实现canvas鼠标点击爆炸动画效果代码
代码语言:html
所属分类:动画
代码描述:anime实现canvas鼠标点击爆炸动画效果代码
代码标签: anime canvas 鼠标 点击 爆炸 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> canvas { display: block; width: 100vw; height: 100vh; } </style> </head> <body > <canvas id="c"></canvas> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/anime-min.js"></script> <script > var c = document.getElementById("c"); var ctx = c.getContext("2d"); var cH; var cW; var bgColor = "#FF6138"; var animations = []; var circles = []; var colorPicker = (function() { var colors = ["#FF6138", "#FFBE53", "#2980B9", "#282741"]; var index = 0; function next() { index = index++ < colors.length-1 ? index : 0; return colors[index]; } function current() { return colors[index] } return { next: next, current: current } })(); function removeAnimation(animation) { var index = animations.indexOf(animation); if (index > -1) animations.splice(index, 1); } function calcPageFillRadius(x, y) { var l = Math.max(x - 0, cW - x); var h = Math.max(y - 0, cH - y); return Math.sqrt(Math.pow(l, 2) + Math.pow(h, 2)); } function addClickListeners() { document.addEventListener("touchstart", handleEvent); document.addEventListener("mousedown", handleEvent); }; function handleEvent(e) { if (e.touches) { e.preventDefault(); e = e.touches[0]; } var currentColor = colorPicker.current(); var nextColor = colorPicker.next(); var targetR = calcPageFillRadius(e.pageX, e.pageY); var rippleSize = Math.min(200, (cW * .4)); var minCoverDuration = 750; var pageFill = new Circle({ x: e.pageX, y: e.pageY, r: 0, fill: nextColor }); var fillAnimatio.........完整代码请登录后点击上方下载按钮下载查看
网友评论0