强大的JavaScript响应式图表Chartist.js的使用


Posted in Javascript onSeptember 13, 2017

Chartist.js是一个非常简单而且实用的JavaScript前端图表生成器,它支持SVG格式,图表数据转换十分灵活,同时也支持多种图表展现形式,不失为一款前端开发者的开发利器。

Chartist.js的特点

  • 配置十分简单,可以很方便地转换各种图表数据格式。
  • CSS和JavaScript分离,因此代码比较简洁,使用就相对方便。
  • 使用SVG格式,因此Chartist.js可以很灵活的在Web页面上应用。
  • 响应式图表,支持不同的浏览器尺寸和分辨率。
  • 支持自定义 SASS 架构。

强大的JavaScript响应式图表Chartist.js的使用

Chartist.js的使用方法

首先你需要在其官方网站中下载JS包和CSS包,并且在页面中引用它们:

<link rel="stylesheet" href="bower_components/chartist/dist/chartist.min.css" rel="external nofollow" >
<script src="bower_components/chartist/dist/chartist.min.js">

下面我们对一些常用的图表类型做一个简单的介绍。

带Tooltip提示的线形图

效果图:

强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

new Chartist.Line('.ct-chart', {
 labels: ['1', '2', '3', '4', '5', '6'],
 series: [
  {
   name: 'Fibonacci sequence',
   data: [1, 2, 3, 5, 8, 13]
  },
  {
   name: 'Golden section',
   data: [1, 1.618, 2.618, 4.236, 6.854, 11.09]
  }
 ]
});

var easeOutQuad = function (x, t, b, c, d) {
 return -c * (t /= d) * (t - 2) + b;
};

var $chart = $('.ct-chart');

var $toolTip = $chart
 .append('<div class="tooltip"></div>')
 .find('.tooltip')
 .hide();

$chart.on('mouseenter', '.ct-point', function() {
 var $point = $(this),
  value = $point.attr('ct:value'),
  seriesName = $point.parent().attr('ct:series-name');

 $point.animate({'stroke-width': '50px'}, 300, easeOutQuad);
 $toolTip.html(seriesName + '<br>' + value).show();
});

$chart.on('mouseleave', '.ct-point', function() {
 var $point = $(this);

 $point.animate({'stroke-width': '20px'}, 300, easeOutQuad);
 $toolTip.hide();
});

$chart.on('mousemove', function(event) {
 $toolTip.css({
  left: (event.offsetX || event.originalEvent.layerX) - $toolTip.width() / 2 - 10,
  top: (event.offsetY || event.originalEvent.layerY) - $toolTip.height() - 40
 });
});

多维度的柱形图

效果图:

强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

new Chartist.Bar('.ct-chart', {
 labels: ['First quarter of the year', 'Second quarter of the year', 'Third quarter of the year', 'Fourth quarter of the year'],
 series: [
  [60000, 40000, 80000, 70000],
  [40000, 30000, 70000, 65000],
  [8000, 3000, 10000, 6000]
 ]
}, {
 seriesBarDistance: 10,
 axisX: {
  offset: 60
 },
 axisY: {
  offset: 80,
  labelInterpolationFnc: function(value) {
   return value + ' CHF'
  },
  scaleMinSpace: 15
 }
});

简单的饼图

效果图:

 强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

var data = {
 labels: ['Bananas', 'Apples', 'Grapes'],
 series: [20, 15, 40]
};

var options = {
 labelInterpolationFnc: function(value) {
  return value[0]
 }
};

var responsiveOptions = [
 ['screen and (min-width: 640px)', {
  chartPadding: 30,
  labelOffset: 100,
  labelDirection: 'explode',
  labelInterpolationFnc: function(value) {
   return value;
  }
 }],
 ['screen and (min-width: 1024px)', {
  labelOffset: 80,
  chartPadding: 20
 }]
];

new Chartist.Pie('.ct-chart', data, options, responsiveOptions);

更多关于Chartist.js的用法,可以前往其官方网站进行查阅,包括详细地API。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
详解使用webpack打包编写一个vue-toast插件
Nov 08 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
javascript实现移动端上传图片功能
Aug 18 Javascript
JS库之Waypoints的用法详解
Sep 13 #Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 #Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 #Javascript
基于vue的短信验证码倒计时demo
Sep 13 #Javascript
BootStrap数据表格实例代码
Sep 13 #Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 #Javascript
Angular CLI 安装和使用教程
Sep 13 #Javascript
You might like
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
canvas绘制多边形
2017/02/24 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Python补齐字符串长度的实例
2018/11/15 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python计算无向图节点度的实例代码
2019/11/22 Python
常用的10个Python实用小技巧
2020/08/10 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
python 模拟登陆163邮箱
2020/12/15 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
财务人员个人自荐信范文
2013/09/26 职场文书
接受捐赠答谢词
2014/01/27 职场文书
先进典型发言材料
2014/12/30 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python