这篇文章主要介绍了Html5饼图绘制实现统计图的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Html5提供了强大的绘图API,让我们能够使用javascript轻松绘制各种图形。本文将主要讲解使用HTML5绘制饼图(统计图)的方法。先看一下饼图效果:
这个图是动态生成的,根据传入的比例参数(数组),来动态绘制饼图。饼图的大小也是根据高度来动态调整的。
全部代码如下:
这个函数可以直接使用,如果想做的更漂亮,可以增加一些额外的美观绘制。
本代码最大的灵活性是将绘制参数与绘制代码分离,饼图大小根据Canvas容器高度自动调整。传递参数方式如下:
const canvas = document.getElementById(“canvas”)
canvas.style.border = “1px solid black”
const ctx = canvas.getContext(“2d”)
const img = new Image() // 创建图片对象
let timer // 定时器标识符
let millisec = 300 // 执行时间间隔
let colIndex = 0 // 列数
let 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坐标(注:图片上定位的坐标),width,height(图片上截取的大小),x坐标,y坐标(注:图片在画布上的起点,即左上角),width,height(缩放,不是裁剪)
colIndex++ // 下一帧
if (colIndex > 4) {
colIndex = 0
rowIndex++
}
} else {
colIndex = 0
rowIndex = 0
}
}
img.onload = () => {
timer = setInterval(timerFun, millisec)
}
img.src = “image/apple.jpg”
const startBtn = document.getElementsByClassName(‘start-btn’)[0]
const endBtn = document.getElementsByClassName(‘end-btn’)[0]
const pauseBtn = document.getElementsByClassName(‘pause-btn’)[0]
const continueBtn = document.getElementsByClassName(‘continue-btn’)[0]
startBtn.addEventListener(‘click’, () => {
console.log(“点击开始”, timer)
clearInterval(timer)
colIndex = 0 // 列数
rowIndex = 0 // 行数
timer = setInterval(timerFun, millisec)
})
endBtn.addEventListener(‘click’, () => {
console.log(“点击结束”, timer)
clearInterval(timer)
colIndex = 0
rowIndex = 0
ctx.drawImage(img, colIndex * 240, rowIndex * 240, 200, 200, 50, 50, 200, 200)
timer = 0
})
pauseBtn.addEventListener(‘click’, () => {
console.log(“点击暂停”, timer)
clearInterval(timer)
timer = 0
})
continueBtn.addEventListener(‘click’, () => {
if (timer) {
alert(‘吃着呢,别催’)
return
}
console.log(“点击继续”, timer)
timer = setInterval(timerFun, millisec)
})
到此这篇关于Html5饼图绘制实现统计图的方法的文章就介绍到这了,更多相关Html5饼图统计图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
来源:脚本之家
链接:https://www.jb51.net/html5/739046.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/892302.html