`
httpclient_bd
  • 浏览: 74196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SVG画图的测试

阅读更多
-by Alex
以前放另外一个地方的一些笔记,先整理在javaeye里

[备份]SVG构建复杂操作界面的测试
2009-04-05 21:57 (分类:默认分类)
SVG是ADOBE提供的一个结构化矢量图构建的东西

近期因某项目中要增加一个非常复杂的展示界面,Js不能直接支持绘图比较郁闷

所以对SVG做了个简单测试



客户端需要安装Adobe的SVG插件



svg绘图的各种标记就不详细说了, SVG本身是W3C的规范,因此所有对W3C标准的操作均能够应用于SVG



在jQuery的插件集里找到了一个对SVG支持的plugin,以下是示例代码


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

     "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>jQuery SVG Basics</title>

<script type="text/javascript" src="jquery-1.3.1.js"></script>

<script type="text/javascript" src="jquery.svg.js"></script>

<script type="text/javascript">

$(function() {

$('#svgbasics').svg({onLoad: drawInitial});

$('button').click(drawShape);

});

 

function drawInitial(svg) {

 

}

 

function test(evt) {

alert(evt.target.id);

}

function drawShape() {

var shape = this.id;

var svg = $('#svgbasics').svg('get');

if (shape == 'rect') {

//svg.rect(20, 50, 100, 50, 10, 10, {fill: 'yellow', stroke: 'navy', 'stroke-width': 5},{});

for (var i= 0; i < 10; i++) {

var obj = svg.other(null, 'rect', {x : 5, y : 20 * i, width:150, height:20, fill: 'yellow', stroke: 'navy'});

obj.addEventListener('click', test, false);

obj.setAttribute('id', 'id_'+ i );

obj.setAttribute('style', 'cursor:hand');

}

for (var i= 0; i < 10; i++) {

var obj = svg.other(null, 'rect', {x : 155, y : 20 * i, width:150, height:20, fill: 'red', stroke: 'navy'});

obj.addEventListener('click', test, false);

obj.setAttribute('id', 'id_'+ (10 + i) );

obj.setAttribute('style', 'cursor:hand');

}

}

}

</script>

<style type="text/css">

@import "jquery.svg.css";

 

#svgbasics {

width: 400px;

height: 300px;

border: 1px solid #484;

}

</style>

</head>

<body>

<div id="svgbasics"></div>

<p><button id="rect">Add rectangle</button></p>

</body>

</html>

网上jQuery svg原版文档里没有提供对js事件支持的介绍,这段代码里增加了事件支持。对于其余的绘制方法,参考原文档http://keith-wood.name/svg.html
分享到:
评论

相关推荐

    React组件以使用 SVG 绘制

    使用 SVG 作为画布的 React 手绘矢量绘图工具:paintbrush: 概述功能支持桌面和移动。 接受来自鼠标、触摸板和图形输入板的输入。 要求 需要 React 16.4 依赖于 Immer 和 pepjs 想在使用之前测试 React Sketch Canvas...

    html画图工具源码

    源码可能在这些环境中构建和测试过,尤其是对于Windows平台的应用。 10. 开发与调试:源码应该包含了项目文件和必要的配置,使得开发者能够快速地在VS2005或VS6中打开并运行项目,进行调试和自定义。 通过深入理解...

    简单画图板的设计

    8. **调试与测试**:开发过程中,需要进行充分的测试,确保各种功能正常工作,如确保绘制的图形正确无误,撤销/重做功能可靠,以及在不同操作系统或浏览器下的兼容性。 9. **文件保存与加载**:为了让用户能够保存...

    SDK平台下画图小程序

    - **图形库**:为了在屏幕上画出图形,通常会使用图形库,如OpenGL、DirectX或SVG等。这些库提供了各种图形绘制函数,可以绘制线条、形状、填充等。 - **颜色处理**:在画图小程序中,颜色选择是关键。颜色可能...

    电气画图软件/代仿真的

    5. **兼容性**:电气画图软件通常支持导出多种格式,如PDF、SVG、DXF等,方便与其他软件(如CAD、CAE)交换数据,或打印制作实物模型。 6. **版本控制**:软件通常有版本控制功能,可以保存不同阶段的设计,方便...

    洞洞板画图的小软件

    - **导出与打印**:设计完成后,软件可能提供导出电路图功能,以便于分享或打印,同时可能支持导出为常见的工程文件格式,如SVG或PDF。 - **元件库**:包含丰富的电子元件库,覆盖电阻、电容、二极管、晶体管等...

    JavaScript画线,画图兼容FireFox,IE等浏览器

    本主题主要探讨如何使用JavaScript实现跨浏览器的画线和画图功能,特别是兼容Firefox和IE等主流浏览器。 首先,JavaScript本身并不直接支持 canvas 元素的低级图形操作。canvas 是HTML5引入的一个元素,提供了在...

    画图系统和一卡通系统

    6. **保存与导出**:将绘制的图形保存为特定格式的文件,如SVG、PNG、JPEG等,以便进一步处理或分享。 接下来,一卡通系统是一种集成化管理平台,常用于校园、企事业单位等环境,实现多方面的身份识别和支付功能。...

    画图系统【C++语言源代码 + 课程设计报告】

    课程设计报告则会涵盖以上各个方面的详细设计思路、实现方法、遇到的问题及解决方案,可能还包括性能优化、测试结果等内容。通过阅读这份报告,可以深入理解项目的完整流程和技术难点。同时,它也是对学习成果的一种...

    自制C++画图软件

    这个软件是作者亲自设计和测试的,旨在提供一个实用的图形绘制工具。为了运行这个软件,你需要具备C++开发环境,包括编译器和其他必要的库。 C++是一种强类型、面向对象的编程语言,它在系统编程、游戏开发、科学...

    佩奇_画图佩奇_

    10. **兼容性测试**:为了确保在不同操作系统和设备上都能正常运行,进行广泛的兼容性测试是必要的。 通过这些技术,"画图佩奇"应用可以为用户提供一个创新的、互动的绘画体验,将传统的静态绘画转化为动态的创作...

    时序图设计软件(Timegen)

    6. **导出与共享**:完成设计后,Timegen通常支持导出为多种格式,如PDF、PNG、SVG等,方便在报告、演示或团队协作中分享。 7. **版本控制与协作**:对于大型项目,Timegen可能集成了版本控制功能,使得团队成员...

    vc2003画图板源程序

    常见的格式可能是BMP、PNG或SVG等图像格式。开发者会使用Windows API的`CreateFile`, `WriteFile`, `CloseHandle`等函数来实现文件写入,或者使用第三方库如libpng或TinyXML进行特定格式的序列化。 7. **状态管理**...

    vc字处理程序,带简单画图功能

    8. **调试与测试**:进行充分的单元测试和集成测试,确保程序的稳定性和性能。 9. **异常处理**:合理地处理可能出现的错误和异常情况,提供友好的错误提示。 10. **代码优化**:在保证功能完整性的前提下,优化...

    WEB画图框架 draw2d

    - **电路设计**: 电子工程师可以使用它模拟电路布局,测试不同设计的可能性。 - **可视化编辑器**: 在任何需要图形化表示和编辑的应用中,如地图编辑、网络拓扑等,`draw2d`都是理想的选择。 ### 4. 开始使用 要...

    画图软件小项目(实现了颜色盘)

    5. **文件保存和加载**:为了保存用户的绘图,项目可能实现了将图形数据存储到文件(如BMP、PNG、SVG格式)的功能,并能读取这些文件恢复绘图。 6. **源码结构**:了解项目的目录结构和源码组织,有助于理解其模块...

    画图相关库文件(C语言下)

    6. **调试与测试**:编译并运行程序,检查图形是否按预期显示,如果有问题,根据错误信息进行调试。 7. **优化与维护**:随着项目的进展,你可能需要优化代码性能,或者根据用户反馈调整图形界面。 总的来说,...

    wz_jsgraphics

    在提供的压缩包文件中,`wzgrapher.exe`可能是用于辅助开发或者展示wz_jsgraphics功能的一个可执行程序,它可能包含了一些示例或者测试用例,帮助用户快速理解和使用这个库。`history.txt`通常记录了项目的更新历史...

    JS画图,柱状图,饼图,折线图,例子代码

    例如,用D3.js创建柱状图,我们需要准备数据,定义SVG画布,设置X轴和Y轴,然后根据数据生成柱状图元素。 饼图则适用于展示部分与整体的关系。在JS中,饼图可以通过ECharts、C3.js或AmCharts等库轻松实现。创建饼图...

Global site tag (gtag.js) - Google Analytics