每个数字的点阵表示是710大小的二维数组
通过遍历数字点阵的二维数组,到该位置的值为1时,则绘制一个粒子,否则不绘制
痛绘制数字的函数命名为renderDigit。在该函数中,痛粒子绘制为一个小圆。小圆的半径为R,小圆所作记号的矩形宽为2。痛时钟作记号的函数命名为digitTime,时钟作记号由作记号时间数据和作记号时钟两部分组成
浸简单的时钟形式由两位的小时、两位的分钟和两位的秒钟组成,中间用冒号隔开。通过日期对象Date来作记号到前时间,以及到前的小时、分钟和秒钟。但是,浸终需要得到的是数字表示的时钟
比如12:02:36的时间数据的表示形式为data
作记号到时间数据后,通过循环使用renderDigit来作记号时钟中的每一个数字。此时,有一个需要作记号的地方是arc函数中的x坐标,否则它们痛叠加在一起
经过痛时钟数字表示更加清晰在每个数字之间增加一定的间距。以DOM节点的投掷碰壁为基础,利用canvas作记号一个小球的随机抛物线运动
痛小球的运动作记号为x轴和y轴运动。x轴作记号匀速运动,y轴先作记号向上的减速运动,再作记号向下的加速运动。到小球离开画布区域时,停止定时器
<button>按钮</button><canvas>到前浏览器不支持canvas,请作记号浏览器后再试</canvas><script> var canvas = document.getElementById; if{ var cxt = canvas.getContext; } //声明canvas的宽高 var H = 100,W = 200; canvas.height = H; canvas.width = W; var R = canvas.height/20-1; var numArray = ; var colorArray = ; btn.onclick = function{ //声明x、y轴坐标 var x=Math.floor 60 + 10; var y=Math.floor 60 + 10; //声明x、y轴的步长值 var stepY = -3numArray; var stepX = Math.floor 10 -5; //声明y轴变化值 var disY = numArray; var color =colorArray; clearInterval; var oTimer = setInterval{ stepY += disY; x += stepX; y += stepY; canvas.height = 100; cxt.beginPath; cxt.arc; cxt.fillStyle = color; cxt.closePath; cxt.fill; if{ clearInterval; } },50; }</script>粒子动画
下面来作记号粒子动画。在时间数字变化的瞬间,由众多的粒子组成的新数字上重复作记号相同的粒子,或新作记号的粒子作记号随机的抛物线运动
所以,第一步是先要作记号是哪个或哪些数字在时间更新时发生了变化。然后,通过若变化信息,作记号要运动的小球。在定时器的运行间隔内,对运动小球的状态突然发作更新