强大的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 设计模式 推荐
Oct 28 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
Apr 01 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
Vue.js每天必学之过渡与动画
Sep 06 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
vue form check 表单验证的实现代码
Dec 09 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 4.2书写安全的脚本
2006/10/09 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
js模拟类继承小例子
2010/07/17 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
layer 刷新某个页面的实现方法
2019/09/05 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
Python中的元组介绍
2019/01/28 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
sort命令的作用和用法
2013/08/25 面试题
J2EE中常用的名词进行解释
2015/11/09 面试题
合作协议书怎么写
2014/04/18 职场文书
小学班级特色活动方案
2014/08/31 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python