弄了一堆线方块和函数,感觉挺玄乎,然并卵。我们直接写个项目看看。

canvas一个比较拽的应用就是图表和游戏,我们从浅入深,先玩图表,图表我们今天说一个最简单柱状图。

柱状图很多人用百度的echars,那么我们会用更要会写,为啥?我见过太多的人问我echarts不可能完全符合他们公司的需求,随便改一点东西就不搞了,简单的说我们要做开发者,而不是一个js库的搬运工,我们今天就参考这个效果http://echarts.baidu.com/demo...,写一个。

无话可说先搭架子。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>尼古拉斯·屌·大彬哥</title>
<link rel="stylesheet" href="style.css" rel="stylesheet">
<script src="index.js"></script>
</head>
<body>
<div id="div1">
这里留着画图用
</div>
</body>
</html>

index.js

'use strict';
//模仿 http://echarts.baidu.com/demo.html#bar-gradient
window.onload = function(){
var data = [
{"label":"一月","value":getRandomInt(0,400)},
{"label":"一月","value":getRandomInt(1,400)},
{"label":"一月","value":getRandomInt(1,400)}
]; var targetId = 'bchart';
var cw = 800;
var ch = 600; function Bcharts(targetId,cw,ch,data){
console.log(arguments);
} var charts = new Bcharts(targetId,cw,ch,data);
};
//https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random
// 偷个懒,基础函数不写了
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}

style.css

#div1{
width:800px;
height:600px;
border: 1px solid #000;
margin: 0 auto;
}

说三件事,

第一件事,搭好架子,后面写代码舒服。这里用的面向对象方式。

第二件事,基础的函数我就不写了,但是你写过100遍以上完全懂可以偷懒,否则老老实实自己研究明白他。

第三件事,数据我用的data模拟,实际项目一般是后台提供。

最新文章

  1. 【转】探索C#之布隆过滤器(Bloom filter)
  2. js-this的用法,来自阮一峰老师的文章
  3. hp_jetdirect 9100漏洞检测
  4. 初识CentOS服务命令大全
  5. Standford CoreNLP
  6. OC5_NSMutableString操作
  7. 关于如何实现程序一天只启动一次的想法(C++实现)
  8. Hyperledger Fabric链码之二
  9. MVC模式-----struts2框架(2)
  10. DNS 到底怎么工作的? (How does dns work?)
  11. jenkins离线插件安装--笨方法
  12. Maven内存修改
  13. GIt如何进行代码管理
  14. PL/SQL Developer登录出现——Using a filter for all users can lead to poor performance!
  15. android编写测试类
  16. aspose导出excel文件
  17. 怎么修改wamp的本地时间
  18. JSON对应的maven依赖包
  19. Laravel源码解析--看看Lumen到底比Laravel轻在哪里
  20. 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数

热门文章

  1. C语言刷数组题记录
  2. js 数组/对象/日期的浅克隆
  3. C#10新特性-lambda 表达式和方法组的改进
  4. SpringMVC入门二:SSM整合(spring+springmvc+mybatis)
  5. [2022-2-26] OICLASS-USACO提高组模拟赛 C&#183;Convoluted Intervals S
  6. 基于 vite2 + Vue3 写一个在线帮助文档工具
  7. python库安装中Microsoft Visual C++ is required解决方法
  8. php ajax 修改,删除,添加(学做)
  9. mysql卡顿问题查找和解决方法
  10. 为什么 TCP 链接需要三次握手,两次不可以么,为什么?