1、Chartist.js 是简单的响应式图表,可以作为前端图表生成器。
主要特性:
使用基于配置的转换简单处理
使用明确的分离,具有巨大的灵活性(使用 CSS 样式和 JS 控制)
使用 SVG
完全响应式,具有独立 DPI
多媒体查询的响应式配置
完全使用 SASS 构建,并且支持自定义
2、Chartist.js的使用方法
1)在其官方网站中下载JS包和CSS包,并且在页面中引用它们:
<link rel="stylesheet" href="bower_components/chartist/dist/chartist.min.css">
<script src="bower_components/chartist/dist/chartist.min.js">
2)绘图,直接调用包内的函数即可,以线形图为例来说明:
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
})
})
3)实现的效果:
<script language="JavaScript"><!-- Hide the script from old browsers --
function compute(obj) //定义一个函数 名字叫compute 他接收了一个参数 obj
{obj.expr.value = eval(obj.expr.value)} //当前的参数的值和下文参数值所用的方法相同
var one = '1' //定义一个字符型的1
var two = '2' //定义一个字符型的2
var three = '3' //定义一个字符型的3
var four = '4' //定义一个字符型的4
var five = '5' //定义一个字符型的5
var six = '6' //定义一个字符型的6
var seven = '7' //定义一个字符型的7
var eight = '8' //定义一个字符型的8
var nine = '9' //定义一个字符型的9
var zero = '0' //定义一个字符型的0
var plus = '+' //定义一个字符型的+
var minus = '-' //定义一个字符型的*
var multiply = '*' //定义一个字符型的*
var divide = '/' //定义一个字符型的/
var decimal = '.' //定义一个字符型的.
function enter(obj, string) //定义一个函数 名字叫enter 他接收了一个参数 obj
{obj.expr.value += string} //让 obj的值加上 '+'后面的值
function clear(obj) //定义一个函数 名字叫clear 他接收了一个参数 obj
{obj.expr.value = ''} //让obj的值等于空
// --End Hiding Here -->
</script>
<form name="calc">
<table border=1>
<td colspan=4><input type="text" name="expr" size=30 action="compute(this.form)"><tr>
<!--提交表单-->
<td><input type="button" value=" 7 " onClick="enter(this.form, seven)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 8 " onClick="enter(this.form, eight)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 9 " onClick="enter(this.form, nine)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" / " onClick="enter(this.form, divide)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<tr><td><input type="button" value=" 4 " onClick="enter(this.form, four)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 5 " onClick="enter(this.form, five)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 6 " onClick="enter(this.form, six)"><!--当鼠标点击按
钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" * " onClick="enter(this.form, multiply)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<tr><td><input type="button" value=" 1 " onClick="enter(this.form, one)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 2 " onClick="enter(this.form, two)"><!--当鼠标点击按
钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" 3 " onClick="enter(this.form, three)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" - " onClick="enter(this.form, minus)"><!--当鼠标点
击按钮的时候提交给函数按钮中的值-->
<tr><td colspan=2><input type="button" value=" 0 " onClick="enter
(this.form, zero)"><!--当鼠标点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" . " onClick="enter(this.form, decimal)"><!--当鼠标
点击按钮的时候提交给函数按钮中的值-->
<td><input type="button" value=" + " onClick="enter(this.form, plus)"><!--当鼠标点击
按钮的时候提交给函数按钮中的值-->
<tr><td colspan=2><input type="button" value=" = " onClick="compute(this.form)"><!
--提交表单在javascript中进行运算-->
<td colspan=2><input type="button" value="AC" size= 3 onClick="clear(this.form)"><!--
点击此按钮调用此函数-->
</table>
</form>