强大的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写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
javascript new一个对象的实质
Jan 07 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
jQuery自带的一些常用方法总结
Sep 03 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
May 09 Javascript
JS验证字符串功能
Feb 22 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
Mar 23 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 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
php 清除网页病毒的方法
2008/12/05 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
定义php常量的详解
2013/06/09 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
12306验证码破解思路分享
2015/03/25 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
mui back 返回刷新页面的实例
2017/12/06 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
在python中画正态分布图像的实例
2019/07/08 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
Django url 路由匹配过程详解
2021/01/22 Python
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
汽车维修专业个人求职信范文
2014/01/01 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
2014年学生会工作总结
2014/11/07 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
物业公司管理制度
2015/08/05 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python