利用EXCEL制作动态仪表盘,Excel制作动态仪表盘
770
2022-05-29
简介
Canvas是由HTML代码配合高度和宽度属性而定义出的可绘制区域。JavaScript代码可以访问该区域,类似于其他通用的二维API,通过一套完整的绘图函数来动态生成图形。
基本使用
了解了
完整代码:使用 canvas 绘制文本
接下来就要基于HTMLl5 Canvas实现鼠标跟随炫彩小动画:
这是html/css部分
先来说说js部分
首先 获取画布
let canvas = document.querySelector('#canvas');
然后定义宽高
canvas.width = window.innerWidth canvas.height = window.innerHeight
定义为2d,circular为圆
let circular = canvas.getContext('2d');
定义数组存取增加的圆
let CirArr = []
定义构造函数
function Cir(obj) { for (let prop in obj) { this[prop] = obj[prop] } this.dotX = Math.random() * 12 - 7 this.dotY = Math.random() * 12 - 7 this.color = "rgb(" + (parseInt(Math.random() * 200) + 9) + "," + (parseInt(Math.random() * 230) + 18) + ",150)"; }
圆的操作
CirArr.push(this) // 绘制圆 Cir.prototype.addCir = function() { // 开始路径绘制 circular.beginPath() // 画圆 circular.arc(this.x, this.y, this.r, 0, Math.PI*2) circular.fillStyle = this.color circular.fill() } Cir.prototype.ani = function() { this.x += this.dotX this.y += this.dotY this.r-- if (this.r <= 0) { // 清除r小于0的圆 for (let i = 0; i < CirArr.length-1; i++) { if (CirArr[i] === this) { CirArr.splice(i, 1) } } } }
鼠标移入事件
canvas.onmousemove = function(e) { new Cir({ x: e.offsetX, //x坐标 y: e.offsetY, //y坐标 r: 30 //半径 }) }
设置定时器
setInterval(() => { circular.clearRect(0, 0, window.innerWidth, window.innerHeight) for (let i = 0; i < CirArr.length-1; i++) { CirArr[i].ani() CirArr[i].addCir() } },20)
效果如下:
Canvas HTML
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。