VML Chart 控件[5]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lxx8402 的 blog

   newshape= document.createelement("<v:rect style='position:absolute;left:"+l+";top:"+t+";width:"+ barwidth + "px;height:"+ barheight +"px;z-index:9;border-width:0' fillcolor='" + arrseries[i].color + "' title = '"+ arrseries[i].all[k].tooltiptext +"'></v:rect>");

   //alert(this.axisx.width)
   ocontainer.appendchild(newshape);
  }
 }
};
//-----------------------------------------------------------------------------
//------------------------------------------------------------------------------
//竖向线状图类,继承verticalchart类
function verticallinechart(){
 verticalchart.call(this);
 this.isdrawpoint = true;
};
var _p = verticallinechart.prototype = new verticalchart;

//画verticallinechart
_p.draw = function(){
 if(this.border.style == 1){
  this.margin = new array(400,200,400,300);
 }

 var ocontainer = this.vmlobject;
 this.axisy.showpoint = 10;
 this.drawcoord(ocontainer);
 this.drawlinex(ocontainer);
 this.drawliney(ocontainer);
 this.drawsmallseries(ocontainer);
 this.drawline(ocontainer);
};

//画verticallinechart的具体数据
_p.drawline = function(ocontainer){
 var arrseries = this.seriescollection;
 var fcolwidth,dcs;
 fcolwidth = this.axisx.width;
 dcs    = this.axisy.ln/this.axisy.width;
 var ivalueln, iseriesln;
 iseriesln = arrseries.length
 var points = new array(iseriesln);
 var l,t,barheight;
 for(var i=0; i<iseriesln; i++){
  ivalueln = arrseries[i].all.length;
  points[i] = new array();
  for(var k=0; k<ivalueln; k++){
   barheight = dcs*eval(arrseries[i].all[k].value)
   l = eval(this.margin[0]+ k*fcolwidth);
   t = eval(this.height*10 - this.margin[3] - barheight);
   points[i][k] = l+","+t;
  }
 }
 
 //画polyline
 for(var i=0; i<points.length; i++){
  var newpolyline = document.createelement("v:polyline");
  newpolyline.filled = false;
  newpolyline.style.zindex = 8;
  newpolyline.style.position = "absolute";
  newpolyline.strokecolor = arrseries[i].color;
  newpolyline.strokeweight = "1.5pt";
  for(var k=0; k<points[i].length; k++){
   if(k==0) newpolyline.points = points[i][k];
   else newpolyline.points += " "+ points[i][k];
   
   if(this.isdrawpoint){
    var newoval = document.createelement("v:oval");
    tmp = points[i][k].split(",");
    newoval.style.zindex = 9;
    newoval.style.position = "absolute";
    newoval.style.left = tmp[0]-20;
    newoval.style.top = tmp[1]-20;
    newoval.style.width = 40;
    newoval.style.height = 40;
    newoval.strokecolor = arrseries[i].color;
    newoval.fillcolor = arrseries[i].color;
    newoval.title = arrseries[i].all[k].tooltiptext;
    ocontainer.appendchild(newoval);
   }
  }
  ocontainer.appendchild(newpolyline);
 }
};
//-----------------------------------------------------------------------------

file:vmlgraph1_0_1.htm

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title> test vml chart for version 1.0.1 </title>
<style>
    v\:* { behavior: url(#default#vml) }
</style>
<script language="javascript" src="vmlgraph1_0_1.js"></script>
</head>

<body>
<div id=test1>
<script language="javascript">
<!--
var tmp = new array();

//柱状图
//var chart = new verticalbarchart();

//线图
var chart = new verticallinechart();

chart.text.font.size = 24;
chart.text.font.style = fstbold;
chart.shadow = true;
chart.container = test1;
chart.initialise();

var s = new series();
var label = new array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");

for(var i=0;i<label.length;i++){
  v = math.round(math.random()*1000);
  tmp[tmp.length] = v;
  s.adddata(label[i],v);
}
s.title = "series 1";
s.color = "red";
chart.addseries(s);

s = new series();
for(var i=0;i<label.length;i++){
  v = math.round(math.random()*1000);

本文关键:jascript vml chart 图形 图表
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top