强大的JavaScript响应式图表Chartist.js的使用

发布时间 - 2026-01-11 03:14:38    点击率:

Chartist.js是一个非常简单而且实用的JavaScript前端图表生成器,它支持SVG格式,图表数据转换十分灵活,同时也支持多种图表展现形式,不失为一款前端开发者的开发利器。

Chartist.js的特点

  • 配置十分简单,可以很方便地转换各种图表数据格式。
  • CSS和JavaScript分离,因此代码比较简洁,使用就相对方便。
  • 使用SVG格式,因此Chartist.js可以很灵活的在Web页面上应用。
  • 响应式图表,支持不同的浏览器尺寸和分辨率。
  • 支持自定义 SASS 架构。

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代码:

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代码:

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代码:

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。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# 图表Chartist  # 响应式图表Chartist  # Chartist.js  # JS中使用media实现响应式布局  # 利用js编写响应式侧边栏  # 纯javascript响应式树形菜单效果  # 原生JS实现响应式瀑布流布局  # JavaScript 实现一个响应式系统的解决方案  # 多维  # 做一个  # 自定义  # 更多关于  # 很方便  # 是一个非常  # 大家多多  # 数据格式  # data  # sequence  # Fibonacci  # section  # Golden  # Line  # chart  # ct  # Tooltip  # src  # series  # labels 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel怎么上传文件_Laravel图片上传及存储配置  Python制作简易注册登录系统  网页设计与网站制作内容,怎样注册网站?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何在橙子建站中快速调整背景颜色?  如何在搬瓦工VPS快速搭建网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  EditPlus 正则表达式 实战(3)  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何用免费手机建站系统零基础打造专业网站?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  如何快速上传自定义模板至建站之星?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  中山网站推广排名,中山信息港登录入口?  网站制作企业,网站的banner和导航栏是指什么?  如何为不同团队 ID 动态生成多个非值班状态按钮  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何使用Gate和Policy进行授权?(权限控制)  iOS中将个别页面强制横屏其他页面竖屏  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  简历没回改:利用AI润色让你的文字更专业  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  香港服务器如何优化才能显著提升网站加载速度?  网站页面设计需要考虑到这些问题  Firefox Developer Edition开发者版本入口  Python高阶函数应用_函数作为参数说明【指导】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  JS实现鼠标移上去显示图片或微信二维码  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  网站制作报价单模板图片,小松挖机官方网站报价?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何确保西部建站助手FTP传输的安全性?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  网站优化排名时,需要考虑哪些问题呢?