⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chart.js

📁 dojo-0.4.0-ajax.zip ajax一个应用。在页面上可以直接用标签。此为ajax的框架
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.svg.Chart");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Chart");dojo.require("dojo.html.layout");dojo.require("dojo.math");dojo.require("dojo.svg");dojo.require("dojo.gfx.color");dojo.require("dojo.json");dojo.widget.defineWidget(	"dojo.widget.svg.Chart",	[dojo.widget.HtmlWidget, dojo.widget.Chart],	function(){		//	summary		//	initializes the SVG version of Chart.		this.templatePath=null;		this.templateCssPath=null;		this._isInitialize=false;		this.hasData=false;		this.vectorNode=null;		this.plotArea=null;		this.dataGroup=null;		this.axisGroup=null;		this.properties={			height:0,	//	defaults, will resize to the domNode.			width:0,			defaultWidth:600,			defaultHeight:400,			plotType:null,			padding:{				top:10,				bottom:2,				left:60,				right:30			},			axes:{				x:{					plotAt:0,					label:"",					unitLabel:"",					unitType:Number,					nUnitsToShow:10,					range:{						min:0,						max:200					}				},				y:{					plotAt:0,					label:"",					unitLabel:"",					unitType:Number,					nUnitsToShow:10,					range:{						min:0,						max:200					}				}			}		};	},	{		parseProperties:function(/* HTMLElement */node){			//	summary			//	Parse the properties off the main tag			var bRangeX=false;			var bRangeY=false;			if (node.getAttribute("width")){ 				this.properties.width=node.getAttribute("width");			}			if (node.getAttribute("height")){				this.properties.height=node.getAttribute("height");			}			if (node.getAttribute("plotType")){				this.properties.plotType=node.getAttribute("plotType");			}			if (node.getAttribute("padding")){				if (node.getAttribute("padding").indexOf(",") > -1)					var p=node.getAttribute("padding").split(","); 				else var p=node.getAttribute("padding").split(" ");				if (p.length==1){					var pad=parseFloat(p[0]);					this.properties.padding.top=pad;					this.properties.padding.right=pad;					this.properties.padding.bottom=pad;					this.properties.padding.left=pad;				} else if(p.length==2){					var padV=parseFloat(p[0]);					var padH=parseFloat(p[1]);					this.properties.padding.top=padV;					this.properties.padding.right=padH;					this.properties.padding.bottom=padV;					this.properties.padding.left=padH;				} else if(p.length==4){					this.properties.padding.top=parseFloat(p[0]);					this.properties.padding.right=parseFloat(p[1]);					this.properties.padding.bottom=parseFloat(p[2]);					this.properties.padding.left=parseFloat(p[3]);				}			}			if (node.getAttribute("rangeX")){				var p=node.getAttribute("rangeX");				if (p.indexOf(",")>-1) p=p.split(",");				else p=p.split(" ");				this.properties.axes.x.range.min=parseFloat(p[0]);				this.properties.axes.x.range.max=parseFloat(p[1]);				bRangeX=true;			}			if (node.getAttribute("rangeY")){				var p=node.getAttribute("rangeY");				if (p.indexOf(",")>-1) p=p.split(",");				else p=p.split(" ");				this.properties.axes.y.range.min=parseFloat(p[0]);				this.properties.axes.y.range.max=parseFloat(p[1]);				bRangeY=true;			}			return { rangeX:bRangeX, rangeY:bRangeY };		},		setAxesPlot:function(/* HTMLElement */table){			//	summary			//	figure out where to plot the axes			if (table.getAttribute("axisAt")){				var p=table.getAttribute("axisAt");				if (p.indexOf(",")>-1) p=p.split(",");				else p=p.split(" ");								//	x axis				if (!isNaN(parseFloat(p[0]))){					this.properties.axes.x.plotAt=parseFloat(p[0]);				} else if (p[0].toLowerCase()=="ymin"){					this.properties.axes.x.plotAt=this.properties.axes.y.range.min;				} else if (p[0].toLowerCase()=="ymax"){					this.properties.axes.x.plotAt=this.properties.axes.y.range.max;				}				// y axis				if (!isNaN(parseFloat(p[1]))){					this.properties.axes.y.plotAt=parseFloat(p[1]);				} else if (p[1].toLowerCase()=="xmin"){					this.properties.axes.y.plotAt=this.properties.axes.x.range.min;				} else if (p[1].toLowerCase()=="xmax"){					this.properties.axes.y.plotAt=this.properties.axes.x.range.max;				}			} else {				this.properties.axes.x.plotAt=this.properties.axes.y.range.min;				this.properties.axes.y.plotAt=this.properties.axes.x.range.min;			}		},		drawVectorNode:function(){			//	summary			//	Draws the main canvas for the chart			dojo.svg.g.suspend();					if(this.vectorNode) this.destroy();			this.vectorNode=document.createElementNS(dojo.svg.xmlns.svg, "svg");			this.vectorNode.setAttribute("width", this.properties.width);			this.vectorNode.setAttribute("height", this.properties.height);			dojo.svg.g.resume();		},		drawPlotArea:function(){			//	summary			//	Draws the plot area for the chart			dojo.svg.g.suspend();					if(this.plotArea){				this.plotArea.parentNode.removeChild(this.plotArea);				this.plotArea=null;			}			var defs = document.createElementNS(dojo.svg.xmlns.svg, "defs");			var clip = document.createElementNS(dojo.svg.xmlns.svg, "clipPath");			clip.setAttribute("id","plotClip"+this.widgetId);			var rect = document.createElementNS(dojo.svg.xmlns.svg, "rect");					rect.setAttribute("x", this.properties.padding.left);			rect.setAttribute("y", this.properties.padding.top);			rect.setAttribute("width", this.properties.width-this.properties.padding.left-this.properties.padding.right);			rect.setAttribute("height", this.properties.height-this.properties.padding.top-this.properties.padding.bottom);			clip.appendChild(rect);			defs.appendChild(clip);			this.vectorNode.appendChild(defs);			//	the plot background.			this.plotArea = document.createElementNS(dojo.svg.xmlns.svg, "g");			this.vectorNode.appendChild(this.plotArea);			var rect = document.createElementNS(dojo.svg.xmlns.svg, "rect");					rect.setAttribute("x", this.properties.padding.left);			rect.setAttribute("y", this.properties.padding.top);			rect.setAttribute("width", this.properties.width-this.properties.padding.left-this.properties.padding.right);			rect.setAttribute("height", this.properties.height-this.properties.padding.top-this.properties.padding.bottom);			rect.setAttribute("fill", "#fff");			this.plotArea.appendChild(rect);			dojo.svg.g.resume();		},		drawDataGroup:function(){			//	summary			//	Draws the data group for the chart			dojo.svg.g.suspend();					if(this.dataGroup){				this.dataGroup.parentNode.removeChild(this.dataGroup);				this.dataGroup=null;			}			this.dataGroup = document.createElementNS(dojo.svg.xmlns.svg, "g");			this.dataGroup.setAttribute("style","clip-path:url(#plotClip"+this.widgetId+");");			this.plotArea.appendChild(this.dataGroup);			dojo.svg.g.resume();		},		drawAxes:function(){			//	summary			//	Draws the axes for the chart			dojo.svg.g.suspend();					if(this.axisGroup){				this.axisGroup.parentNode.removeChild(this.axisGroup);				this.axisGroup=null;			}			//	axis group			this.axisGroup = document.createElementNS(dojo.svg.xmlns.svg, "g");			this.plotArea.appendChild(this.axisGroup);			//	x axis			var stroke=1;			var line = document.createElementNS(dojo.svg.xmlns.svg, "line");			var y=dojo.widget.svg.Chart.Plotter.getY(this.properties.axes.x.plotAt, this);			line.setAttribute("y1", y);			line.setAttribute("y2", y);			line.setAttribute("x1",this.properties.padding.left-stroke);			line.setAttribute("x2",this.properties.width-this.properties.padding.right);			line.setAttribute("style","stroke:#000;stroke-width:"+stroke+";");			this.axisGroup.appendChild(line);						//	x axis units.			//	(min and max)			var textSize=10;			var text = document.createElementNS(dojo.svg.xmlns.svg, "text");			text.setAttribute("x", this.properties.padding.left);			text.setAttribute("y", this.properties.height-this.properties.padding.bottom+textSize+2);			text.setAttribute("style", "text-anchor:middle;font-size:"+textSize+"px;fill:#000;");			text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.x.range.min),2)));			this.axisGroup.appendChild(text);						var text = document.createElementNS(dojo.svg.xmlns.svg, "text");			text.setAttribute("x", this.properties.width-this.properties.padding.right-(textSize/2));			text.setAttribute("y", this.properties.height-this.properties.padding.bottom+textSize+2);			text.setAttribute("style", "text-anchor:middle;font-size:"+textSize+"px;fill:#000;");			text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.x.range.max),2)));			this.axisGroup.appendChild(text);							//	y axis			var line=document.createElementNS(dojo.svg.xmlns.svg, "line");			var x=dojo.widget.svg.Chart.Plotter.getX(this.properties.axes.y.plotAt, this);			line.setAttribute("x1", x);			line.setAttribute("x2", x);			line.setAttribute("y1", this.properties.padding.top);			line.setAttribute("y2", this.properties.height-this.properties.padding.bottom);			line.setAttribute("style", "stroke:#000;stroke-width:"+stroke+";");			this.axisGroup.appendChild(line);			//	y axis units			var text = document.createElementNS(dojo.svg.xmlns.svg, "text");			text.setAttribute("x", this.properties.padding.left-4);			text.setAttribute("y", this.properties.height-this.properties.padding.bottom);			text.setAttribute("style", "text-anchor:end;font-size:"+textSize+"px;fill:#000;");			text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.y.range.min),2)));			this.axisGroup.appendChild(text);						var text = document.createElementNS(dojo.svg.xmlns.svg, "text");			text.setAttribute("x", this.properties.padding.left-4);			text.setAttribute("y", this.properties.padding.top+(textSize/2));			text.setAttribute("style", "text-anchor:end;font-size:"+textSize+"px;fill:#000;");			text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.y.range.max),2)));			this.axisGroup.appendChild(text);				dojo.svg.g.resume();		},		init:function(){			//	summary			//	Initialize the chart			if(!this.properties.width || !this.properties.height){				var box=dojo.html.getContentBox(this.domNode);				if(!this.properties.width){					this.properties.width=(box.width<32)?this.properties.defaultWidth:box.width;				}				if(!this.properties.height){					this.properties.height=(box.height<32)?this.properties.defaultHeight:box.height;				}			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -