`
wenlong342
  • 浏览: 62390 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

vml曲线实例

    博客分类:
  • jsp
阅读更多

 

index.html

<HTML xmlns:v="urn:schemas-microsoft-com:vml"xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>曲线</title>
<link rev="stylesheet" media="all" href="VMLCurve.css" type="text/css" rel="stylesheet" />
<script language="javascript" >
</script>

<style type="text/css">
<!--
v\:* { behavior: url(#default#VML);} o\:* { behavior: url(#default#VML);}
body {
 margin:0px;
 padding:0px;
 font-size:12px;
 text-align:left
}

.pBlack {
 font-weight:bold;
 font-size:12px;
}

.pRed {
 font-weight:bold;
 font-size:12px;
 color:#FF0000;
}

/*横坐标轴样式*/
.pMonth {
 font-size:66px;
 font-family:"黑体";
 color:#CCCCCC;
 letter-spacing: 3px;
}

/*提示信息样式*/
.ToolTip {
 padding:4px;
 margin:4px;
 background-color: #CCCCCC;
 border: 1px solid #0066FF;
 text-align:left;
}

/*标题显示样式*/
.Title {
 font-family:"宋体", "华文仿宋";
 font-size:16px;
 text-align:center;
 font-weight:bold;
 color:#996600;
 vertical-align:middle;
}

.curveBody{
 margin:0;
 padding:0;
 height:20px;
 font-size:12px;
}

.curveForm{
 margin:0;
 padding:0;
 height:20px;
 font-size:12px;
}
-->
</style>
</head>

<body class="curveBody">
<br><br>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td height="20"><div align="center" ></div></td></tr>
</table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td height="20"><div align="center" ></div></td></tr>
</table>
<script language="javascript">
 //建立曲线对象
 var vc = new VMLCurve(document.getElementById("curve"));
 //设置X坐标值,从左至右
 //vc.configXValue = new Array('一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月');
 
 //设置Y坐标轴
 vc.configYPerValue = 100;
     vc.configYMinValue = 100;
 //vc.configYValue = new Array('100','200','300','400','500','600','700','800','900','1000');
 vc.init("vc","曲线图");
 //用数组设置点的横纵标值及提示信息
 var xValueArr = new Array(1,2,3,4,5,6,7,8,9,10,11,12);   //X轴数据,
 var yValueArr = new Array(500,280,420,550,600,700,800,720,190,940,590,340); //Y轴数据
 var sValueArr = new Array('第1个点','第2个点','第3个点','第4个点','第5个点','第6个点','第7个点','第8个点','第9个点','第10个点','第11个点','第12个点'); //提示信息
 //设置圆点的属性
 vc.setPointsProp(5,1,'#FF6600','#FF6600');
 vc.setPointsValue(xValueArr,yValueArr,sValueArr); 
</script>
</body>
</html>


pic.js

<!--
/* 说明: JS和VML画曲线图
 * 作者:<a href="http://www.freeage.cn" target="_blank">梦想年华</a>
 * 邮箱:fanwsp@126.com
 * 主页:<a href="http://www.FreeAge.cn" target="_blank">自由时代</a> [<a href="http://www.freeage.cn" target="_blank">http://www.freeage.cn</a>]
 * 申明:转载,使用,修改请保存上面的版权申明
 */
function VMLCurve(objDiv){
 
 this.objDiv = objDiv;    // obj
 this.toolTips    = "";    // 提示信息
 this.configXPerValue = 0;
     this.configYPerValue = 0;
     this.configXMinValue = 0;
     this.configYMinValue = 0;
 
 this.OriginXValue = 0;    // 圆点坐标
 this.OriginYValue = 0;
 
 //定义区域参数
 this.group    = null;  // v:group
 this.n      = 1   // 倍数
 this.gpWidth   = 700;  // Width
 this.gpHeight   = 350;  // Height
 
 this.configXTextLeft = -10;  // 定义 X轴坐标值左边离坐标距离
 this.configXTextTop  = 10;  // 定义 X轴坐标值上方离X轴的距离
 
 this.configYLeft   = 60;  // 定义 Y轴距对象左边的距离
 this.configYTextRight = 40;  // 定义 Y轴坐标值离Y轴右边的距离
 this.configYTextBottom  = 5;  // 定义 Y轴坐标值离坐标下边距离
 
 //X轴值
 this.configXValue = new Array('一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月');
 //Y轴值
 this.configYValue = new Array('100','200','300','400','500','600','700','800','900','1000');
 
 // Init BackGround
 this.Background  = null; 
 this.bgColor  = "#C4E1FF";  // BackGround Color
 
 // Init ToolTip
 this.configToolLeft    = 15;
 this.configToolTop    = 15;
 this.ToolTip      = document.createElement("DIV");
 this.ToolTip.className    = "ToolTip";
 this.ToolTip.id     = "ToolTip";
 this.ToolTip.style.zIndex   = "100";
 this.ToolTip.style.position  = "absolute";
 this.ToolTip.style.display  = "none";
 this.ToolTip.innerHTML   = "";
 
 //设置点线的属性
 this.PointRadius = 5;      //圆点的半径大小
 this.LineSize    = 2;                   //线的大小
 this.PointColor  = "#FF6600";   //点的颜色
 this.LineColor   = "#FF6600";   //线的颜色
 
 this.Points = "";
 this.PreviousPointY = 0;
 this.PointsYCount   = 0;
 }

// Init
VMLCurve.prototype.init = function(strObj,strTitle){
 
 this.gpcX   = this.gpWidth/this.n;   // coordsize X 700
 this.gpcY   = this.gpHeight/this.n;   // coordsize Y  350
 
 this.configXLen    = this.gpWidth - this.configYLeft*2+20; // 定义 X轴长度       600
 this.configYLen    = this.gpHeight- 100;   // 定义 Y 轴长度      250
 this.configXNum  = this.configXValue.length;  // X轴刻度数           12
 this.configYNum  = this.configYValue.length;  // Y轴刻度数            10
 
    this.configXTop  = this.configYLen+20;   //定义 X轴距对象上边的距离
 
 this.configXPerLen = str2Float((this.configXLen-20)/this.configXNum,2); //定义 X轴每刻度长度
 this.configYPerLen = str2Float((this.configYLen-20)/this.configYNum,2); //定义 Y轴每刻度长度


 //初始化背景参数
 this.bgWidth  = this.gpWidth;  // Height
 this.bgHeight  = this.gpHeight; // Width
 
 if(this.configYPerValue!=0){
        var tempArr = new Array(this.configYNum);
        for(var i=0;i<this.configYNum;i++){
         tempArr[i] = str2Float(this.configYMinValue+this.configYPerValue*i,2);
        }
        this.configYValue = tempArr; //y轴刻度
 }
    else {
        this.configYPerValue = str2Float((this.configYValue(this.configYNum)-this.configYMinValue)/this.configYNum,2);
    }
   
   if(this.configXPerValue!=0){
        var tempArr = new Array(this.configXNum);
        for(var i=0;i<this.configXNum;i++){
         tempArr[i] = str2Float(this.configXMinValue+this.configXPerValue*i,2);
        }
        this.configXValue = tempArr; 
 }else{
         //this.configXPerValue = str2Float((this.configXValue(this.configXNum)-this.configXMinValue)/this.configXNum,2);
    }
 
    this.configYValue  = this.configYValue.reverse(); //倒序数组
 this.createGroup();
 this.createBackgroud();
 this.createCoordinate();
 this.createXTableLine();
 this.createYTableLine();
 this.createToolTip();
 
 this.setTitle(strTitle);
 this.strObj = strObj;
}

//建立画图区域
VMLCurve.prototype.createGroup = function() {
 this.group = document.createElement("<v:group group1\" coordsize=\""+this.gpcX+","+this.gpcY+"\" style=\"z-index:-10;width:"+this.gpWidth+"px;height:"+this.gpHeight+"px\">");
 this.objDiv.insertBefore(this.group);//画出一个<v:group>
}

//填充背景
VMLCurve.prototype.createBackgroud = function() {
 this.Background = document.createElement("<v:rect fillcolor=\"white\" strokecolor=\"black\" style=\"z-index:-8;width:"+this.bgWidth+"px;height:"+this.bgHeight+"px\" />");
 this.Background.insertBefore(document.createElement("<v:fill rotate=\"t\" type=\"gradient\" color2=\""+this.bgColor+"\" />"));
 this.Background.insertBefore(document.createElement("<v:shadow on=\"t\" type=\"single\" color=\"silver\" offset=\"3pt,3pt\" />"));
 this.group.insertBefore(this.Background);
}

//建立坐标轴
VMLCurve.prototype.createCoordinate = function() {
 var pointX1 = this.configYLeft + "," + this.configXTop;
 var pointX2 = this.configYLeft+this.configXLen + "," + this.configXTop;
 var pointY1 = pointX1;
 var pointY2 = this.configYLeft + "," + eval(this.configXTop-this.configYLen);
 this.createCoordinateLine(pointY1,pointX2);
 this.createCoordinateLine(pointY1,pointY2);
 this.setOriginValue(this.OriginXValue,this.OriginYValue);
}

//建立坐标线
VMLCurve.prototype.createTableLine = function(xPoint,yPoint,sTableColor){
 var tempLine = document.createElement("<v:line from=\""+xPoint+"\" to=\""+yPoint+"\" strokeColor=\""+sTableColor+"\" style=\"Z-INDEX:8;;/>");
 this.group.insertBefore(tempLine);
 tempLine.insertBefore(document.createElement("<v:stroke dashstyle=\"Solid\" />"));
}

//画坐标轴线
VMLCurve.prototype.createCoordinateLine = function(xPoint,yPoint){
 var tempLine = document.createElement("<v:line from=\""+xPoint+"\" to=\""+yPoint+"\" strokeColor=\"#FF6600\" strokeweight=\"1px\" style=\"Z-INDEX:8;;\"/>");
 this.group.insertBefore(tempLine);
 tempLine.insertBefore(document.createElement("<v:stroke  EndArrow=\"classic\" />"));
}

//创建文本提示信息
VMLCurve.prototype.createText = function(xLeft,xTop,sText,sClass) {
 var tempObj = document.createElement("<P class=\""+sClass+"\" style=\"Z-INDEX:8;LEFT:"+xLeft+"px;;TOP:"+xTop+"px;\"/>");
 tempObj.innerHTML = sText;
 this.group.insertBefore(tempObj);
}

// 创建X坐标网格线
VMLCurve.prototype.createXTableLine = function(){
 var x1,y1,x2,y2,point1,point2,sTableColor;
 sTableColor = "#CCCCCC";
 for(var i=0;i<this.configXValue.length;i++){
  x1 = eval(this.configYLeft + this.configXPerLen*(i+1));
  y1 = eval(this.configXTop-this.configYLen)+10;
  x2 = x1;
  y2 = eval(this.configXTop+5);
  point1 = x1 + "," + y1;
  point2 = x2 + "," + y2;
     this.createTableLine(point1,point2,sTableColor);
     this.createText(x1+this.configXTextLeft,this.configXTop+this.configXTextTop,this.configXValue[i],"pBlack");
 }
}

//创建Y轴坐标网格线
VMLCurve.prototype.createYTableLine = function(){
 var x1,y1,x2,y2,point1,point2,sTableColor;
 for(var i=0;i<this.configYValue.length;i++){
  x1 = eval(this.configYLeft - 5);
  y1 = eval(this.configXTop - this.configYPerLen*(i+1));
  x2 = eval(this.configYLeft + this.configXLen - 10);
  y2 = y1;
  point1 = x1 + "," + y1;
  point2 = x2 + "," + y2;
     if(this.configYValue[this.configYValue.length-i-1]=="C2") sTableColor="#FF9900";
  else sTableColor = "#CCCCCC";
  this.createTableLine(point1,point2,sTableColor);
  this.createText(this.configYLeft-this.configYTextRight,y1-this.configYTextBottom,this.configYValue[this.configYValue.length-i-1],"pBlack");
 }
}


//设置标题
VMLCurve.prototype.setTitle = function(strTitle){
 var tempObj = document.createElement("<div class=\"Title\" style=\";Z-INDEX:9;LEFT:"+40+"px;TOP:"+(this.configXTop+40)+"px;width:"+(this.configXLen)+"px;height:"+(this.gpHeight-this.configXTop-20)+";/>");
 tempObj.innerHTML = strTitle;
 this.group.insertBefore(tempObj);
}

// 画圆点坐标
VMLCurve.prototype.setOriginValue = function(x,y){
 this.createText(this.configYLeft+this.configXTextLeft,this.configXTop+this.configXTextTop,x,"pBlack");
 this.createText(this.configYLeft-this.configYTextRight,this.configXTop-this.configYTextBottom,y,"pBlack");
}


// 设置圆点坐标属性
VMLCurve.prototype.setPointsProp = function(sPointRadius,sLineSize,sPointColor,sLineColor){
 PointRadius = sPointRadius;   //圆点的半径大小
 LineSize    = sLineSize;           //线的大小
 PointColor  = sPointColor;   //点的颜色
 LineColor   = sLineColor;   //线的颜色
}


// 设置纵坐标的值
VMLCurve.prototype.setPointsValue = function(xValueArr,yValueArr,sValueArr){
     var sValue  = "";
     var xValue  = 0;
 var yValue  = 0;
 var tempLen = 0;
 var thisX   = 0;
 var thisY   = 0;
 var tempX   = 0;
     var tempY   = 0;
 for(var i=0;i<xValueArr.length;i++){
        thisX   = str2Float(xValueArr[i],2);
        thisY   = str2Float(yValueArr[i],2);
        sValue  = sValueArr[i];
        //tempX   = str2Float((thisX - this.OriginXValue)/this.configXPerValue,2);
  tempY   = str2Float((thisY - this.OriginYValue)/this.configYPerValue,2);
  xValue  = str2Float(this.configYLeft + str2Float(thisX*this.configXPerLen,2),2);
  yValue  = str2Float(this.configXTop - str2Float(tempY*this.configYPerLen,2),2);
  sValue  += "<br>坐标值[X,Y]:[" + xValue + "," + yValue + "]";
  sValue  += "<br>实际值[X,Y]:[" + thisX + "," + thisY + "]";
        //this.PointsYCount  += str2Float(yValueArr[i],2);
  //this.PreviousPointY = yValueArr[i];  
  this.Points = this.Points + xValue + "," + yValue + " "; 
  this.createPoint(xValue,yValue,sValue);
 }
 this.createCurveLine();
 this.PreviousPointY = 0;
 this.Points         = 0;
 this.PointsYCount   = 0;
}


// create Point
VMLCurve.prototype.createPoint = function(sLeft,sTop,sText){
 //根据圆点的坐标,得到左上方点的坐标
 var xLeft  = sLeft - this.PointRadius;
 var xTop   = sTop  - this.PointRadius;
 var tempOval = document.createElement("<v:oval style=\";Z-INDEX:12;LEFT:"+xLeft+"px;TOP:"+xTop+"px;width:"+2*this.PointRadius+";height:"+2*this.PointRadius+";cursor:hand;\" stroked=\"f\" fillcolor=\""+this.PointColor+"\" strokeweight=\"1px\" "+this.strObj+".setToolTip('block','" + sText + "'," + sLeft + "," + sTop + ");\" "+this.strObj+".setToolTip('none','');\"/>");
 group1.insertBefore(tempOval);
}

//以两点为坐标画线
VMLCurve.prototype.createCurveLine = function(){
 var tempLine = document.createElement("<v:PolyLine Points=\""+ this.Points +"\" style=\"Z-INDEX:11;;\" strokeweight=\"2px\" filled=\"f\" />");
 var newStroke = document.createElement("<v:stroke dashstyle='solid' color='"+this.LineColor+"'/>");
 group1.insertBefore(tempLine);
 tempLine.insertBefore(newStroke);
}


VMLCurve.prototype.createToolTip = function(){
 this.group.insertBefore(this.ToolTip);
}

VMLCurve.prototype.setToolTip = function(sVisitable,sContent,x,y){
 this.ToolTip.style.pixelLeft  = x + this.configToolLeft;
 this.ToolTip.style.pixelTop  = y + this.configToolTop;
 this.ToolTip.style.display  = sVisitable;
 if(this.ToolTip.innerHTML==""){
  this.ToolTip.innerHTML = sContent;
 }
 if(sContent==""){
  this.ToolTip.innerHTML = "";
 }
}


/*以下代码来自网络,主要功能是对数字进行格式化
 *原作者不详,敬请谅解。
 */
/*********************************
* 字符串转换为数字(""-->0)as_type--str,num
* 参数说明:
as_str--转换的字符串
ai_digit--转换的小数位数(null--不限制小数位数,0--转换为整型,>0按小数位数转换)
as_type--转换后返回的类型(null,"num"--转换为数字类型,"str"--转换为字符串
(按小数格式化后的字符串)
* 例如:
* str2float("10.2124568795")返回float类型10.2124568795
* str2float("10.6",0)返回Int类型11(使用四舍五入的方法)
* str2float("10.2",2)返回float类型10.1
* str2float("10.2",2,"str")返回String类型"10.20"(按小数位数格式化字符串)
* str2float("10.216",2)返回float类型10.22
* str2float("10.216",2,"str")返回String类型"10.22"
*********************************
*/
function str2Float(as_str,ai_digit,as_type)
{
   var fdb_tmp = 0;
   var fi_digit = 0;
   var fs_digit = "1";
   var fs_str = "" + as_str;
   var fs_tmp1 = "";
   var fs_tmp2 = "";
   var fi_pos = 0;
   var fi_len = 0;
   fdb_tmp = parseFloat(isNaN(parseFloat(fs_str))?0:fs_str);
  
   switch (true)
   {
   case (ai_digit==null):       //不改变值,只转换为数字
   fdb_tmp = fdb_tmp;
   break;
   case (ai_digit==0):          //取得整数
   fdb_tmp = Math.round(fdb_tmp);
   break;
   case (ai_digit>0):            //按照传入的小数点位数四舍五入取值
   for (var i=0;i<ai_digit;i++) fs_digit +="0";
   fi_digit = parseInt(fs_digit);
   fdb_tmp = Math.round(fdb_tmp * fi_digit) / fi_digit;
   if (as_type=="str")
   {
   fs_tmp1 = fdb_tmp.toString();
   fs_tmp1 +=((fs_tmp1.indexOf(".")!=-1)?"":".") + fs_digit.substr(1);
   fi_pos = fs_tmp1.indexOf(".") + 1 + ai_digit;
   fdb_tmp = fs_tmp1.substr(0,fi_pos);
   }
  break;
   }
   return fdb_tmp;
}

分享到:
评论

相关推荐

    vml+javascript直接在浏览器中绘制动态曲线图实例(源码-+Think+in+vml++vml+极道教程)

    JavaScript与VML结合,可以实现动态、交互式的图形绘制,比如在本实例中,我们将探讨如何利用这两种技术在浏览器中绘制动态曲线图。 在浏览器的早期版本,特别是那些不支持SVG(Scalable Vector Graphics)或者...

    vml+javascript直接在浏览器中绘制动态曲线图实例(源码-+Think in vml +vml+极道教程)

    在“vml+javascript直接在浏览器中绘制动态曲线图实例”中,我们主要学习如何通过JavaScript与VML结合,在不支持SVG(Scalable Vector Graphics)的老版IE浏览器中绘制动态曲线图。SVG是另一种更现代的矢量图形标准...

    VML实例VML实例

    VML,全称Vector Markup Language,是一种用于在网页上呈现矢量图形的标记语言。它是在HTML或XML文档中嵌入的,允许开发者创建和控制复杂的矢量图形,这些图形可以无限放大而不会失真,非常适合制作图表、流程图、...

    VML绘制的曲线图 实例源代码

    VML绘制的曲线图 实例源代码 HTML 在线御览地址:http://joocc.com/doc/jsvml.htm

    VML教程_两套不同教程兼实例

    在这种教程中,你可能会学到如何使用VML指令来创建圆、弧线、曲线,以及如何在极坐标下定位和显示元素。 在“VML教程_美洲豹”文件中,你可以期待找到关于如何使用VML创建各种美洲豹图案的详细步骤,包括如何定义...

    vml无刷新动态曲线图

    在"VMLC"这个文件中,可能是一个VML曲线图的实例或者是一个封装好的库,提供了更便捷的方式来创建和操作VML曲线。"refresh"可能是用于实现动态刷新功能的一个JavaScript函数或脚本,负责监听数据变化并更新图形。 ...

    vml技术大全(中文手册,极道教程,入门教程及大量实例等)

    6. **VML柱图与曲线图**:"vml 柱图.doc"和"JS和VML画曲线图.doc"展示了如何用VML绘制数据图表,这对于数据可视化和报表展示是非常有价值的技能。 7. **组织结构图与多边形**:"vml 演练 组织结构图 样式.doc"和...

    js+vml画图精彩实例

    在"js+vml画图精彩实例"中,我们可以学习到以下关键知识点: 1. **VML基础**:VML是一种XML方言,用于创建和展示矢量图形,包括线条、形状、文本和图像。了解VML的基本元素,如`&lt;v:shape&gt;`、`&lt;v:line&gt;`、`&lt;v:rect&gt;`...

    VML极道教程(含实例的学习资料)

     VML支持广泛的矢量图形特征,它们基于由相连接的直线和曲线描述路径。在VML中使用两个基本的元素:shape和group。这两个元素定义了VML的全部结构;shape描述一个矢量图形元素,而group用来将这些图形结合起来,...

    VML极道教程

    《VML极道教程》包含大量实例,让读者能够在实践中学习,涵盖从简单的图形绘制到复杂的交互式设计,帮助读者巩固所学知识并提升技能。 通过阅读《VML极道教程》,无论是初学者还是有一定经验的开发者,都能系统地...

    Think in VML教程

    VML,全称Vector Markup Language,是一种用于在网页上呈现矢量图形的标记语言。它是在HTML或XML文档中嵌入的,允许开发者创建和展示复杂的...教程中提供的实例和练习将帮助你逐步提升技能,实现专业级别的图形设计。

    vml入门教程 适合初学者

    VML通过定义一系列的元素和属性来描述图形,比如线条、曲线、矩形、圆形等。 在VML中,`&lt;v:shape&gt;`是最核心的元素,用于创建各种形状。例如,你可以使用`&lt;v:line&gt;`创建直线,`&lt;v:oval&gt;`创建圆形,`&lt;v:rect&gt;`创建...

    VML极道教程,现在最流行的美化网页的工具

    VML精彩实例 ---- VML语言入门 VML标记与通用属性 标记实战与line线 ---- oval圆rect矩型 RoundRect圆矩型 arc圆弧 image图片 polyline多边型 shape多边型 shapetype模版 shape与curve曲线...

    VML.rar_DEMO_VML_vml API_vml包含哪些图_vml教程

    在"VML.rar_DEMO_VML_vml API_vml包含哪些图_vml教程"这个压缩包中,我们可以期待获取关于VML的基本知识、实例、API介绍以及可能的一些示例图形。以下是一些关于VML的关键知识点: 1. **VML结构**:VML基于XML,...

    vml教程

    `map.html`可能是一个实例,展示了如何用VML创建地图,因为VML非常适合绘制地理图形,允许精确的缩放和交互。这可能是教程中的一个特别实用的部分,尤其是对于需要在网站上展示地理信息的开发者来说。 在VML教程中...

    vml使用手册_包含多种示例

    VML是一种XML方言,它可以用来描述二维矢量图形,支持线、曲线、形状、文本和图像等元素。在HTML文档中,我们通常通过`&lt;vml&gt;`标签来引入和操作这些元素。例如,创建一个简单的矩形,可以使用以下代码: ```xml &lt;vml...

    vml.rar_VML

    6. **实例演示**:提供一系列实际的示例代码,帮助学习者理解并实践VML的用法,可能包括图表、地图、图标等常见应用场景。 7. **替代技术SVG**:对比SVG和VML,阐述SVG作为W3C标准的优势,如跨浏览器兼容性、更好的...

    VML.rar_VML

    你手头的“VML极道教程”和“vmljdjc”很可能是针对VML技术的详细教学材料,包含实例和解释。通过这些资料,你可以深入理解VML的语法、属性和方法,以及如何在实际项目中应用。同时,配合在线资源如MDN Web Docs、...

    vml基础教程

    9. **地图绘制**:文件`map.html`可能涉及使用VML绘制地图的实例,这对于地理信息系统或自定义地图应用来说非常有用。 10. **动态更新和动画**:可能还会介绍如何利用JavaScript动态改变VML元素的属性,制作出动态...

    vml极道教程经典教程

    6. **实例解析**:通过实际的示例项目,展示如何将VML应用到实际网页设计中,例如创建图表、按钮、导航菜单等。 7. **兼容性和问题解决**:由于VML主要为IE浏览器设计,教程可能会涵盖如何处理其他浏览器不支持的...

Global site tag (gtag.js) - Google Analytics