/**
* @author wsf
*/
G_LTIE8 = !document.createElement('canvas').getContext;//是否是ie9一下的版本的ie
//利用html5 canvas 画的常用小图标
;(function(win, $) {
/**
* 公共代码
*/
function getCommon(canvasId, width, height) {
var obj = document.getElementById(canvasId);
if (obj.nodeName.toLowerCase() != "canvas")
alert("有元素与此canvas元素id冲突!");
if (obj == null) {
_obj = $('<canvas id="' + canvasId + '" width="' + width + '" height="' + height + '"></canvas>')
_obj.appendTo($("body"));
obj = _obj[0];
}
if (G_LTIE8) {
obj = G_vmlCanvasManager.initElement(obj);//ie下初始化canvas对象
}
return obj.getContext('2d');
}
/**
* 绑定事件公共方法
*/
function bindEvent(target,events,args){
for(var name in events){
target.bind(name,function (){
events[name](args);
});
}
}
var icons = {};
icons = $.extend(icons, {
loading : {
showLoading :function (){
var ctx = getCommon("loading", 100, 100);
var loadingInterval = null;
$("#loading").parent().show();
function _showLoading() {
var rotatorAngle = Math.PI * 2.5;
//弧度
var step = Math.PI / 6;
loadingInterval = setInterval(function() {//定时器 定时触发函数
//取得二第效果
var radius = 20;
//全的半径
ctx.clearRect(0, 0, 100, 100);
//清除页面
var lineWidth = 3;
//线的宽度
ctx.beginPath();
//开始画图
ctx.lineWidth = lineWidth;
//线的宽度
ctx.strokeStyle = 'blue';
ctx.fillStyle = "#ccc";
center = {
x : 100 / 2,
y : 100 / 2
};
ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
//开始画弧线
ctx.strokeStyle = '#587dbf';
//线条的颜色的颜色
ctx.arc(center.x, center.y, radius, rotatorAngle, rotatorAngle + Math.PI * .45);
//语法:arc(定义一个中心点,半径,起始角度,结束角度)
ctx.stroke();
ctx.fill();
//绘制
rotatorAngle += step;
}, 50/* 这是延迟多少秒做函数*/)
//*以上是划一个圈
}
_showLoading();//显示加载中
},
/**
* 隐藏loading
*/
hiddenLoading:function (){
$("#loading").parent().hide();//
}
},
search : function(events) {
/**
* 开始画搜索按钮
*/
var id = "searchBtnCvs";
var cvs = $("#" + id);
var ctx = getCommon(id, 30, 30);
function _drawSearch() {
ctx.beginPath();
ctx.arc(15, 15, 10, 0, Math.PI * 2, true);
ctx.save();
ctx.moveTo(20, 20);
//原点
ctx.lineWidth = 5;
ctx.lineTo(29, 29);
ctx.strokeStyle = "#95A3F3";
ctx.stroke();
ctx.save();
}
bindEvent(cvs,events,ctx);
_drawSearch();
//调用
},
//向上箭头
arrowUp : function(events) {
var cvs = $("#arrowUp");
var ctx = getCommon("arrowUp", 30, 30);
var _arrowUp = function() {
//画线
ctx.beginPath();
ctx.lineWidth = 5;
ctx.strokeStyle = '#587dbf';
//线条颜色
//坐标源点
ctx.moveTo(11, 25);
ctx.lineTo(11, 5);
ctx.fill();
//充满整个区域
ctx.stroke();
ctx.save();
ctx.moveTo(12, 3);
//坐标原点
ctx.lineTo(3, 15);
ctx.stroke();
ctx.save();
ctx.moveTo(10, 3);
ctx.lineTo(19, 15);
ctx.stroke();
ctx.save();
ctx.closePath();
}
bindEvent(cvs,events,ctx);
_arrowUp();
},
//向下箭头
arrowDown : function(events,callback) {
var cvs = $("#arrowDown");
var ctx = getCommon("arrowDown", 30, 30);
function _arrowDown() {
//画线
ctx.beginPath();
ctx.lineWidth = 5;
ctx.strokeStyle = '#587dbf';
//线条颜色
//坐标源点
ctx.moveTo(11, 0);
ctx.lineTo(11, 25);
ctx.fill();
//充满整个区域
ctx.stroke();
ctx.save();
ctx.moveTo(12, 28);
var _x1 = Math.floor(12 + 4 * Math.sin(45));
var _y1 = Math.floor(28 + 4 * Math.cos(45));
//坐标原点
ctx.lineTo(3, 15);
ctx.stroke();
ctx.save();
ctx.moveTo(12, 28);
ctx.lineTo(20, 14);
ctx.stroke();
ctx.save();
ctx.closePath();
}
bindEvent(cvs,events,ctx);
_arrowDown();
},
//下拉列表图标
select : function(callback) {
var id = "selectBtnCvs";
var cvs = $("#" + id);
var ctx = getCommon(id, 30, 30);
function _arrowDefault() {
//画线
ctx.beginPath();
ctx.lineWidth = 3;
ctx.fillStyle = "#95A3F3";
//线条颜色
//坐标源点
ctx.moveTo(15, 22);
ctx.lineTo(30, 15);
ctx.lineTo(15, 7);
ctx.fill();
}
function _arrowDown() {
//画线
ctx.beginPath();
ctx.lineWidth = 3;
ctx.fillStyle = "#95A3F3";
//线条颜色
//坐标源点
ctx.moveTo(28, 10);
ctx.lineTo(20, 25);
ctx.lineTo(12, 10);
ctx.fill();
ctx.closePath();
}
var _events = {
"mouseover" : function(e) {
ctx.clear();
_arrowDown();
if (callback)
callback(true,e);//回调
},
"mouseout" : function(e) {
ctx.clear();
_arrowDefault();
if (callback)
callback(false,e)//回调
}
}
for(var name in _events){
cvs.bind(name,_events[name]);
}
_arrowDefault(callback);
},
blankArrow:{
arrwoDown:function (events){
var id = "expenddivBtnCvs";
var cvs = $("#"+id);
var ctx = getCommon(id, 40, 20);//id,宽,高
function _init (){
ctx.beginPath();
ctx.lineWidth = 1;
ctx.strokeStyle = "blue";
ctx.fillStyle= "blue";
//坐标源点
ctx.moveTo(3, 3);
ctx.lineTo(15, 8);
ctx.lineTo(27, 3);
ctx.stroke();
ctx.fill();
ctx.closePath();
}
bindEvent(cvs,events,ctx);
_init();//自己调用
},
arrwoUp:function (events){
var id = "unexpendBtnCvs";
var cvs = $("#"+id);
var ctx = getCommon(id, 40, 20);//id,宽,高
function _init (){
ctx.beginPath();
ctx.lineWidth = 1;
ctx.strokeStyle = "#95A3F3";
ctx.fillStyle= "#95A3F3";
//坐标源点
ctx.moveTo(3, 8);
ctx.lineTo(15, 3);
ctx.lineTo(28, 8);
ctx.stroke();
ctx.fill();
ctx.closePath();
}
bindEvent(cvs,events,ctx);
_init();//自己调用
}
},
/**
* 添加按钮
* @param events
*/
add:function (events){
},
/**
* 修改按钮
* @param events
*/
modify:function (events){
},
/**
* 删除按钮
* @param events
*/
Delete:function (events){
}
});
$.icons = icons;
})(window, jQuery);