Canvas 帧动画吃苹果小游戏

这篇文章主要介绍了Html5饼图绘制实现统计图的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

Canvas 帧动画吃苹果小游戏

 

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

全部代码如下:

这个函数可以直接使用,如果想做的更漂亮,可以增加一些额外的美观绘制。

本代码最大的灵活性是将绘制参数与绘制代码分离,饼图大小根据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

(0)
上一篇 2025年1月3日 23:36:24
下一篇 2025年1月3日 23:36:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何在Canvas上的图形/图像绑定事件监听的实现

    这篇文章主要介绍了如何在Canvas上的图形/图像绑定事件监听的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 HTML中只能为元素/标签绑定监听函数; Canva…

    编程技术 2025年1月4日
    100
  • 关于canvas.toDataURL 在iOS运行失败的问题解决

      这篇文章主要介绍了关于canvas.toDataURL 在iOS运行失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近做了一个海报生成的组件,需要d…

    2025年1月4日
    100
  • canvas实现滑动验证的实现示例

    这篇文章主要介绍了canvas实现滑动验证的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 突然想到的方法,来试试吧 1.页面布局 样式 *{ margin: …

    编程技术 2025年1月3日
    200
  • canvas实现图片镜像翻转的2种方式

    这篇文章主要介绍了canvas实现图片镜像翻转的2种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 1. 通过canvas自带的画布方法进行翻转 var img =…

    编程技术 2025年1月3日
    200

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信