JustGage 是一个 JavaScript 插件来生成很漂亮的仪表盘,基于 Raphal 库做向量图绘制。
JustGage 完全基于 SVG,因此支持几乎所有浏览器,包括:IE6+, Chrome, Firefox, Safari, Opera, Android, etc.
效果图如下:
JustGage下载:https://github.com/toorshia/justgage
话不多说,先来实现它吧。
文件路径
|____css
|______style.css
|___js
|______ jquery-1.7.2.min.js
|______ raphael.2.1.0.min.js
|______ justgage.js
|___index.html
2. 代码实现
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>Custom Sectors</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/style.css">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/raphael.2.1.0.min.js"></script>
<script type="text/javascript" src="js/justgage.js"></script>
<style>
.container {
width: 450px;
margin: 0 auto;
text-align: center;
}
.gauge {
width: 450px;
height: 450px;
}
a:link.button,
a:active.button,
a:visited.button,
a:hover.button {
margin: 30px 5px 0 2px;
padding: 7px 13px;
}
</style>
</head>
<body>
<div class="container">
<div id="gg1" class="gauge"></div>
</div>
<script>
var gg1 = new JustGage({
id: "gg1",
value : 72,
min: 0,
max: 100,
width: 400,
height: 400,
title: "仪表盘",
titleFontColor: "#000000",
valueFontColor: "#000000",
symbol: "%",
gaugeWidthScale: 0.6,
gaugeColor: "#bfbfbf",
shadowOpacity: 1,
shadowSize: 5,
shadowVerticalOffset: 10,
valueMinFontSize: 50,
titleMinFontSize: 50,
labelMinFontSize: 50,
//label: "%",
hideValue : false,
hideMinMax : false,
noGradient : false,
//donut : true,
relativeGaugeSize : 100,
customSectors: [{
color : "#00ff00",
lo : 0,
hi : 70
},{
color : "#0000ff",
lo : 70,
hi : 90
}, {
color : "#ff0000",
lo : 90,
hi : 100
}],
counter: true
});
var num = 50;
var modifyValue = function (){
gg1.refresh(num);
num++;
if(num > 100){num=0;}
setTimeout("modifyValue()", 1000);
};
modifyValue();
</script>
</body>
</html>
JustGage两个重要方法。
(1) 构造方法
var gg = new JustGage({
…..// 参数配置
});
(2) 显示方法
gg.refresh(val ,max);
val 为显示的值,必输项
max 为最大值,非必输项
(3) 注意:
如果一个页面上需要显示多个仪表盘,在初始化JustGage对象时参数id需不同外,显示的对象的class名称也必须不同,否则只会显示一个仪表盘
如:
<div>
<divid="gg1" class="gauge1"></div><!—仪表盘1 -->
<div id="gg2" class="gauge2"></div><!—仪表盘2 -->
</div>
JustGage对象所有参数
----------------------------------------------------------------------------------------------------
// id : string
// this is container element id
id
// parentNode : node object
// this is container element
parentNode
// width : int
// gauge width
width
// height : int
// gauge height
height
// title : string
// gauge title
title
// titleFontColor : string
// color of gauge title
titleFontColor
// value : float
// value gauge is showing
value
// valueFontColor : string
// color of label showing current value
valueFontColor
// symbol : string
// special symbol to show next to value
symbol
// min : float
// min value
min
// max : float
// max value
max
// humanFriendlyDecimal : int
// number of decimal places for our humanfriendly number to contain
humanFriendlyDecimal
// textRenderer: func
// function applied before rendering text
textRenderer
// gaugeWidthScale : float
// width of the gauge element
gaugeWidthScale
// gaugeColor : string
// background color of gauge element
gaugeColor
// label : string
// text to show below value
label
// labelFontColor : string
// color of label showing label under value
labelFontColor
// shadowOpacity : int
// 0 ~ 1
shadowOpacity
// shadowSize: int
// inner shadow size
shadowSize
// shadowVerticalOffset : int
// how much shadow is offset from top
shadowVerticalOffset
// levelColors : string[]
// colors of indicator, from lower toupper, in RGB format
levelColors
// startAnimationTime : int
// length of initial animation
startAnimationTime
// startAnimationType : string
// type of initial animation (linear, >,<, <>, bounce)
startAnimationType
// refreshAnimationTime : int
// length of refresh animation
refreshAnimationTime
// refreshAnimationType : string
// type of refresh animation (linear, >,<, <>, bounce)
refreshAnimationType
// donutStartAngle : int
// angle to start from when in donut mode
donutStartAngle
// valueMinFontSize : int
// absolute minimum font size for the value
valueMinFontSize
// titleMinFontSize
// absolute minimum font size for the title
titleMinFontSize
// labelMinFontSize
// absolute minimum font size for the label
labelMinFontSize
// minLabelMinFontSize
// absolute minimum font size for theminimum label
minLabelMinFontSize
// maxLabelMinFontSize
// absolute minimum font size for themaximum label
maxLabelMinFontSize
// hideValue : bool
// hide value text
hideValue
// hideMinMax : bool
// hide min and max values
hideMinMax
// hideInnerShadow : bool
// hide inner shadow
hideInnerShadow
// humanFriendly : bool
// convert large numbers for min, max,value to human friendly (e.g. 1234567 -> 1.23M)
humanFriendly
// noGradient : bool
// whether to use gradual color change forvalue, or sector-based
noGradient
// donut : bool
// show full donut gauge
donut
// relativeGaugeSize : bool
// whether gauge size should follow changesin container element size
relativeGaugeSize
// counter : bool
// animate level number change
counter
// decimals : int
// number of digits after floating point
decimals
// customSectors : [] of objects
// number of digits after floating point
customSectors
// formatNumber: boolean
// formats numbers with commas whereappropriate
formatNumber
转载于:https://blog.51cto.com/anfieldpool/1535756