强大的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 相关文章推荐
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
Javascript动画效果(1)
Oct 11 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
Vue中Quill富文本编辑器的使用教程
Sep 21 Javascript
微信小程序实现手势滑动卡片效果
Aug 26 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
Oct 17 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版本实现代码
2012/09/15 PHP
浅谈php扩展imagick
2014/06/02 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
简单学习vue指令directive
2016/11/03 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
Python修改MP3文件的方法
2015/06/15 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
教师一帮一活动总结
2014/07/08 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书