强大的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获取GridView选择的行内容
Apr 14 Javascript
P3P Header解决Cookie跨域的问题
Mar 12 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
9种改善AngularJS性能的方法
Nov 28 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
详解VUE调用本地json的使用方法
May 15 Javascript
Vue中util的工具函数实例详解
Jul 08 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
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
vue实现搜索功能
2019/05/28 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
python的range和linspace使用详解
2019/11/27 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
用python进行视频剪辑
2020/11/02 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
初中英语教学反思
2014/01/25 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
浅谈Python魔法方法
2021/06/28 Java/Android
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏