Gauge实现canvas仪表盘转动动画效果
代码语言:html
所属分类:动画
代码描述:Gauge实现canvas仪表盘转动动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<style>
html, body, div, canvas, a {
margin: 0px;
padding: 0px;
}
#clockBoard {
width: 550px;
height: 760px;
margin: 0px auto;
margin-bottom: 0px;
}
#pointer {
position: relative;
top: -560px;
}
</style>
</head>
<body>
<div id="clockBoard">
<canvas id="gauge1" width="310" height="310"></canvas>
<canvas id="gauge" width="310" height="310"></canvas>
</div>
<script type="text/javascript">
(function (window) {
var PIDEG = Math.PI / 180;
function Gauge(options) {
//set defaults
var properties = {
tick_length: 80,
large_tick_length: 110,
tick_thickness: 6,
tick_group_length: 9,
ticks_groups_begin: 0,
total_degrees: 240,
tick_color: "#555962",
tick_on_color: "#527d98",
on_color_gradient: null,
bg_color: null,
gauge_scale: 1,
animation_duration: 550,
total_tick: 101,
show_num: true,
show_center_num: true,
center_font_size: 200,
center_font_color: '#555962',
cur_score_circle_color: '#555962',
center_offset: {
x: 0,
y: 0
},
center_num_font_family: 'HanHei SC, PingFang SC, Helvetica Neue Thin, Helvetica, STHeitiSC-Light, Arial, sans-serif',
num_gap: 1,
num_begin: 0,
num_font_size: 16,
tickmask_offset: 0,
num_font_family: 'HanHei SC, PingFang SC, Helvetica Neue Thin, Helvetica, STHeitiSC-Light, Arial, sans-serif',
circle_radius: 5,
circle_offset: 0,
center_text_unit: '分',
center_text_offset: {
x: 16,
y: 8
}
};
this.mergeOptions(properties, options)
this._canvas = options.canvas;
this.canvas = document.createElement('canvas');
this.canvas.width = this._canvas.width;
this.canvas.height = this._canvas.height;
this.delatLength = this.large_tick_length - this.tick_length;
this.context = this.canvas.getContext('2d');
this._context = this._canvas.getContext('2d');
this._percent = options.percent || 0;
this._target_percent = this._percent;
this.tickmask_offset = this.getTickMarkOffset(this.tickmask_offset)
this._halfCanvasWidth = this.canvas.width / 2;
this._halfCanvasHeight = this.canvas.height / 2;
this._rotation_deg = this.getRotationDeg()
return this;
}
Gauge.prototype.mergeOptions = function (defaultOpt, options) {
var _this = this;
this.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0