-
想使用SVG或者canvas 手绘闭合多边形,使用vml效果已经实现了,由于vml只能支持ie所以想转成SVG或canvas 10
引用
最近要实现一个功能,在一张图片上选好区域后,然后记录后选择的坐标。然后使用 map area 将所选区域显示出来。
我在网上找了一段vml的代码,能实现我的功能。
但是因为vml只支持ie,所以没有办法在 Chrome上用。
这个看了两天了,一直没有实现方法,请各位大神,能将代码改成 SVG或者canvas这种能支持Chrome浏览器的。
下面的代码是vml手绘闭合多边形的。
再次谢谢各位大神了。
<HTML xmlns:v> <head> <title>手绘多边形</title> <meta name="ContentType" content="text/html" /> <meta name="CharSet" content="UTF-8" /> <style type="text/css"> v\:* {behavior:url(#default#VML);} </style> <script language="javascript"> var Working=false;//判断是否画图的状态 var poly1=null,oldvalue="",oldx=0,oldy=0 //为了完成铅笔、记忆点等连续线段 var xx,yy; //鼠标单击事件 function divMousedown() { if(!Working)//第一次点击鼠标 { xx=event.x; yy=event.y; poly1=div1.appendChild(document.createElement("<v:shape path='m0,0 l0,0' filled='true' style='POSITION:absolute;z-index:1;left:"+xx+";top:"+yy+";width:100;height:100;filter: Alpha(Opacity=60);' strokecolor='black' strokeweight='1' coordsize='100,100' fillcolor='yellow'/>")); oldvalue=poly1.path.value.replace("e",""); oldx=xx; oldy=yy; Working=true; } else { if (poly1!=null) oldvalue=poly1.path.value.replace(" e",""); } } //鼠标移动的时候 function divMouseMove() { tempx=event.x; tempy=event.y; if (poly1!=null) { poly1.path.value=oldvalue+","+(tempx-oldx)+","+(tempy-oldy); poly1.path.value=poly1.path.value.replace(",0,0,",",0,").replace(",0 e","e"); } } function divMouseUp() { if(event.button==2) { poly1.path.value=oldvalue+"x e"; Working=false; poly1=null; } } </script> <body style="margin:0px;"> <div id="div1" style="position:absolute; height:100%; width:100%; border:1px solid 0000FF;" onmousedown="divMousedown();" onmousemove="divMouseMove();" onmouseup="divMouseUp();" oncontextmenu="return false;">在页面上点击鼠标左键开始,右击鼠标右键结束</div> </body> </html>
2013年12月08日 23:36
1个答案 按时间排序 按投票排序
-
可以参考一下这个:http://blog.csdn.net/firefight/article/details/1346221
2013年12月09日 15:20
相关推荐
SVG、CANVAS、VML是三种用于在Web上创建矢量图形的方法,它们各有优缺点,适应不同的场景需求。 SVG(Scalable Vector Graphics)是一种基于XML的开放标准,被广泛支持,尤其在现代浏览器中,如Firefox和Opera。在...
本文将深入探讨如何利用SVG和VML实现3D曲面效果,以及它们各自的特点和应用场景。 SVG是一种开放标准的矢量图形格式,支持动态和交互式内容,可以在任何分辨率下清晰显示,不会因为放大而失真。它通过定义点、线、...
然而,不幸的是,早期版本的Internet Explorer(尤其是IE8)并不支持Canvas API,这在一定程度上限制了开发者在这些浏览器上实现复杂的图形效果。 `ie-canvas.zip` 是一个解决方案,旨在解决IE8浏览器对...
此外,随着现代浏览器的普及,对于不再维护的旧版IE,开发者可能更倾向于引导用户升级浏览器或使用其他替代方案,如SVG或WebGL,以获得更好的性能和兼容性。但excanvas仍然对那些需要向后兼容的项目提供了有价值的...
通过"excanvas.js",开发者可以在IE上实现与非IE浏览器相似的Canvas绘图效果。 "html5.js"则可能是一个更全面的库,旨在为旧版IE提供更多的HTML5特性支持,不仅仅是Canvas,可能还包括其他如localStorage、Audio/...
在IT行业中,可视化数据是至关重要的,特别是在网页开发中,数据...在实际开发中,我们更倾向于使用像SVG(Scalable Vector Graphics)或者Canvas这样的现代技术,它们提供了更好的跨浏览器支持和更多的交互性选项。
2. **兼容性**:尽管SVG(Scalable Vector Graphics)在现代浏览器中已经成为矢量图形的标准,但VML主要为了解决IE浏览器(尤其是早期版本)对SVG不支持的问题。 3. **应用场景**:在CSS3和SVG普及之前,VML常用于...
它允许开发人员在不支持HTML5 Canvas或SVG(Scalable Vector Graphics)的旧版IE浏览器中实现矢量图形的绘制。在描述中提到的应用场景,例如显示CPU使用率、内存使用率等系统监控图表,VML可以提供一种解决方案来...
VML是Microsoft提出的一种标准,但随着现代浏览器对SVG和Canvas的支持增强,VML的使用逐渐减少。 在"vml柱状图 vml html jquery"这个主题中,我们主要关注如何使用VML在HTML页面上创建柱状图表,并结合jQuery库来...
尽管现在SVG已经成为现代Web开发的标准,但在某些特定场景下,如老版本IE浏览器的兼容性问题,了解并使用VML仍然是有价值的。 **二、VML基础** 1. **语法结构**:VML使用XML的语法,通过定义形状(如矩形、圆形、...
- 虽然VML主要在IE浏览器中支持,但现代浏览器更倾向于支持SVG标准。为了保证跨浏览器兼容,开发者通常会使用库如Raphaël,它自动处理了VML和SVG之间的差异,使得代码可以在各种浏览器中运行。 5. **性能与优化**...
7. **兼容性考虑**:虽然VML主要是在IE浏览器中使用,但考虑到现代浏览器的兼容性,开发者通常会结合SVG(Scalable Vector Graphics)技术,以确保在非IE浏览器中也能正常显示。 8. **安全性**:在实际应用中,电子...
总之,"vml极道教程"是一份全面的学习资料,不仅涵盖VML的基本概念和技术,还涉及到其动态扩展和与其他技术的结合,对想要深入了解和使用VML的人来说非常有价值。通过学习这个教程,你可以提升自己的前端开发技能,...
在Canvas元素出现之前,开发人员若要在浏览器中进行绘图,只能依赖于Adobe的Flash插件、SVG和IE支持的VML等技术。这些技术要么需要额外插件,要么只限于特定浏览器,都不如Canvas API来得通用和便捷。HTML5的Canvas...
总的来说,这个实例为我们展示了在不支持SVG或Canvas的旧版浏览器中,如何使用VML和JavaScript实现动态曲线图的绘制。虽然现在大多数现代浏览器都支持SVG和Canvas,但在兼容性要求较高的场景下,VML仍然是一个值得...
如今,尽管VML在现代网页开发中的应用已经非常有限,但了解其基本概念和语法仍然是有益的,尤其是在处理旧项目或与旧版IE兼容时。 VML的基本结构类似于XML,它使用标签来定义图形元素。例如,创建一个红色的矩形...
虽然VML在现代浏览器中已逐渐被SVG取代,但由于对老版IE的支持需求,有些场景下仍需使用VML。对于其他浏览器,可以使用SVG或HTML5 Canvas来实现类似功能,它们都提供了更强大的图形渲染能力和更好的浏览器兼容性。 ...
不过需要注意的是,由于VML主要针对旧版IE,对于现代浏览器(如Chrome、Firefox和Edge),开发者更倾向于使用SVG(Scalable Vector Graphics)或者Canvas API来实现类似的图形绘制功能,因为它们有更好的跨浏览器...
尤其是在Internet Explorer(IE)浏览器占据主导地位时,由于其对现代Web标准如SVG(Scalable Vector Graphics)的支持不完全,开发者们常常采用VML(Vector Markup Language)技术来在IE中实现矢量图形的绘制。...
VML是一种矢量图形格式,允许在IE浏览器中创建和展示复杂的图形,特别是在不支持SVG(Scalable Vector Graphics)的老版本IE中。 1. **饼图**:饼图是数据可视化中常用的一种图表类型,用于显示部分与整体之间的...