强大的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 相关文章推荐
JavaScript脚本语言在网页中的简单应用
May 13 Javascript
图片上传判断及预览脚本的效果实例
Aug 07 Javascript
javascript查询字符串参数的方法
Jan 28 Javascript
JS实现不规则TAB选项卡效果代码
Sep 16 Javascript
JavaScript 中 avalon绑定属性总结
Oct 19 Javascript
AngularJS入门教程之数据绑定原理详解
Nov 02 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
Jun 05 Javascript
使用vue-infinite-scroll实现无限滚动效果
Jun 22 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
js实现筛选功能
Nov 24 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触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
Java平台和其他软件平台有什么不同
2015/06/05 面试题
Java的基础面试题附答案
2016/01/10 面试题
企业安全生产责任书
2014/04/14 职场文书
创先争优活动个人总结
2015/03/04 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
详解Javascript实践中的命令模式
2021/05/05 Javascript