本文主要介绍用Html5饼状图绘制和实现统计图的方法。通过示例代码进行了非常详细的介绍,对大家的学习或工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

Html5提供了一个强大的绘图API,使我们能够用javascript轻松绘制各种图形。本文将主要讲解用HTML5绘制饼图(统计图)的方法。先来看看饼状图效果:

https://codes90.oss-cn-hangzhou.aliyuncs.com/2022/09/1664454468-792377f55b388c4.png

这个图是动态生成的,饼图是根据传入的刻度参数(数组)动态绘制的。饼图的大小也会根据高度动态调整。

所有代码如下:

这个功能可以直接使用。如果你想让它更漂亮,你可以添加一些额外的漂亮的图纸。

这段代码最大的灵活性就是将绘图参数从绘图代码中分离出来,饼状图大小根据画布容器的高度自动调整。参数传递如下:

!声明文档类型

超文本标记语言

meta charset=’utf-8 ‘

标题帧动画/标题

/头

身体

canvas id=’canvas ‘宽度=’400 ‘高度=’300’/canvas

div class=’ ‘

‘开始-BTN ‘类型=’按钮’再吃一次/按钮

button class=’ end-BTN ‘ type=’ button ‘不要吃/button

暂停-BTN休息一下/按钮

继续-BTN继续吃

/div

脚本类型=’文本/javascript ‘

const canvas=document . getelementbyid(‘ canvas ‘)

canvas.style.border=’1px纯黑’

const ctx=canvas.getContext(‘2d ‘)

Const img=new Image() //创建图片对象

定时器//定时器标识符

设毫秒=300 //执行间隔

colinex=0//列数

设rowIndex=0 //行数

Const timerFun=()={//声明定时器执行函数

Console.log(‘设置计时器’);

Ctx.clearrect (0,0,canvas.style.width,canvas . style . height)//清除画布

If (rowIndex 3) {//如果是前5帧

CTX。DrawImage (img,colindex * 240,rowindex * 240,200,200,50,50,200,200)//图片对象,x坐标,y坐标(注意:坐标位于图片上),宽度,高度(图片上捕捉的大小),x坐标,

ColIndex //下一帧

if (colIndex 4) {

colIndex=0

行索引

}

}否则{

colIndex=0

rowIndex=0

}

}

img.onload=()={

timer=setInterval(timerFun,毫秒)

}

img.src=’image/apple.jpg ‘

const start BTN=document . getelementsbyclassname(‘ start-BTN ‘)[0]

const end BTN=document . getelementsbyclassname(‘ end-BTN ‘)[0]

const pause BTN=document . getelementsbyclassname(‘ pause-BTN ‘)[0]

const continue BTN=document . getelementsbyclassname(‘ continue-BTN ‘)[0]

startbtn . addevent listener(‘ click ‘,()={

Console.log(‘点击开始’,计时器)

清除时间间隔(定时器)

ColIndex=0 //列数

RowIndex=0 //行数

timer=setInterval(timerFun,毫秒)

})

endBtn.addEventListener(‘click ‘,()={

Console.log(‘点击结束’,计时器)

清除时间间隔(定时器)

colIndex=0

rowIndex=0

ctx.drawImage(img,colIndex * 240,rowIndex * 240,200,200,50,50,200,200)

定时器=0

})

pause BTN . addevent listener(‘ click ‘,()={

Console.log(‘点击暂停’,计时器)

清除时间间隔(定时器)

定时器=0

})

continue BTN . addevent listener(‘ click ‘,()={

if(计时器){

Alert(‘吃吧,别着急’)

返回

}

Console.log(‘单击继续’,计时器)

timer=setInterval(timerFun,毫秒)

})

/脚本

/body

/html

关于Html5饼状图的绘制方法实现统计图的这篇文章到此为止。更多相关Html5饼状图,请搜索脚本之家之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持剧本之家!

来源:剧本之家

链接:https://www.jb51.net/html5/739046.html

发表回复

后才能评论