`
weitao1026
  • 浏览: 1048085 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
  1. Raphael.js 的教程非常简单,仅首页一段代码,然后就是 Reference。但作者在 Reference 部分也惜墨如金,不肯多费几句。所以有这一篇中文,对如何使用 Raphael.js 做个简单介绍。  
  2. 调用 Raphael.js  
  3.   
  4. 首先在 HTML 页面调用 raphael.js:  
  5.   
  6. <script src="http://www.zfanw.com/blog/raphael.js"></script>  
  7.   
  8. 用法  
  9.   
  10. 用 Raphael 方法创建一块画布,  
  11.   
  12. var paper = Raphael(10, 50, 320, 200);//在浏览器窗口中,坐标 (10,50) 位置创建一个 canvas 对象,长320px,宽200px。  
  13.   
  14. 我们随后的操作都将在这块画布上进行。  
  15. 绘制基本图形  
  16.   
  17. 比如,以 (100,100) 为中心画半径50px的圆,并填充红色:  
  18.   
  19. var circle=paper.circle(100,100,50);  
  20. circle.attr({"fill":"red"}); //attr 方法用于设定对象属性  
  21.   
  22. 如你所见,这个半径50的圆跑到页面左上。这是因为画布的坐标原点在浏览器窗口左上角。  
  23.   
  24. 但 Raphael 方法还可以在 HTML 元素中创建画布,这就避开上面的问题:  
  25.   
  26. <div id="raphael1"></div>  
  27. <script>  
  28.     var paper=Raphael("raphael1",320,200);//在 id 为 raphael1 元素中创建画布  
  29.     var circle=paper.cicle(100,100,50);  
  30.     circle.attr({"fill":"green"});  
  31. </script>  
  32.   
  33. 代码效果如下:  
  34.   
  35. 除了圆(circle)外,Raphael.js 还提供其他常规图形方法,比如方形(rect)、椭圆(ellipse)、路径(path)等。  
  36. 修改对象属性  
  37.   
  38. 在画布上创建 Raphael 对象后,我们可以修改对象属性。  
  39.   
  40. 比如,先使用 text 方法生成文字,然后修改字体大小为30px,填充蓝色,红色描边,透明度50%:  
  41.   
  42. 代码如下:  
  43.   
  44. <div id="raphael2"></div>  
  45. <script>  
  46. (function(){  
  47.     var paper=Raphael("raphael2",300,300);  
  48.     var t=paper.text(150,150,"Hello from 陈三");  
  49.     t.attr({"font-size":"30px","fill":"blue","stroke":"red","opacity":".5"});  
  50. })();  
  51. </script>  
  52.   
  53. 这一切都是通过 Raphael 对象的 attr 方法完成。  
  54. 变换对象  
  55.   
  56. 除了修改对象属性,我们还可以变换(transform)对象,比如平移、旋转、缩放。  
  57.   
  58. 上图中的代码如下(虚线为图形变换前):  
  59.   
  60. <div id="raphael3"></div>  
  61. <script>  
  62. (function(){  
  63.     var paper=Raphael("raphael3",200,200);  
  64.     var rect=paper.rect(50,50,100,100,5);  
  65.     rect.attr({"stroke-dasharray":"-"});  
  66.     rect.transform("t100,100r45t-100,0s.5");  
  67. })();  
  68. </script>  
  69.   
  70. Raphael 对象变换有四个命令:  
  71.   
  72.     t – translate  
  73.     r – rotate  
  74.     s – scale  
  75.     m – matrix  
  76.   
  77. 上例中 t100,100r45t-100,0s.5 命令翻译过来就是:  
  78.   
  79.     对象水平方向平移100  
  80.     垂直方向平移100  
  81.     旋转45度  
  82.     水平方向往负方向平移100  
  83.     缩小图形到原来的一半  
  84.   
  85. 动画效果  
  86.   
  87. 上面说到修改对象属性和变换对象,因为有开始和结束两个状态,我们就可以制作动画效果。  
  88.   
  89. 上图的代码如下:  
  90.   
  91. <div id="raphael4"></div>  
  92. <script>  
  93. (function(){  
  94.     var paper=Raphael("raphael4",400,300);  
  95.     var circle=paper.circle(200,150,100);  
  96.     circle.attr({"fill":"red"});  
  97.     circle.animate({cx: 10, cy: 20, r: 8, "fill": "blue"}, 10e3);  
  98. })();  
  99. </script>  
  100.   
  101. 圆心的初始坐标(200,130),半径100,填充红色,页面加载完成后,圆心坐标变成(cx,cy),即(10,20),半径缩为8,填充蓝色,这个变化过程时长为10e3毫秒,即10秒 – 如果你没有看到动画效果,那是因为动画已经结束,请刷新页面,然后跳转到这一部分。  
  102. 绑定事件  
  103.   
  104. Raphael.js 还可以给对象绑定事件,比如单击、双击、拖动、鼠标移入、鼠标移出等。  
  105.   
  106. 举 hover 方法为例:  
  107.   
  108. 代码如下:  
  109.   
  110. <div id="raphael5"></div>  
  111. <script>  
  112. (function(){  
  113.     var paper=Raphael("raphael5",400,300);  
  114.     var circle=paper.circle(200,150,100);  
  115.     circle.attr({"fill":"red"});  
  116.     circle.hover(function(){circle.attr({"fill":"green"});},function(){circle.attr({"fill":"red"});});//给 circle 对象绑定 hover 事件  
  117. })();  
  118. </script>  

 

分享到:
评论

相关推荐

    raphael.js扩展的拖拽功能,raphael.draggable.js,raphael.extension.js

    在SVG和VML图形库的世界里,Raphael.js是一个非常受欢迎的JavaScript库,它使得在网页上创建和操作矢量图形变得极其简单。Raphael.js不仅支持多种浏览器,包括那些不支持HTML5 canvas的老旧浏览器,而且提供了一套...

    raphael.min.js

    raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;raphael.min.js;

    Raphael.JSON Raphael.Export Raphael.FreeTransform raphael.serialize

    Raphael.js是一个强大的JavaScript库,专门用于在Web浏览器中创建矢量图形。它提供了一种在SVG(可缩放矢量图形)和VML(Vector Markup Language)之间无缝切换的方法,使得开发者能够在所有现代浏览器以及IE5.5及更...

    raphael.js 绘制柱状图

    `Raphael.js`是一个JavaScript库,专门用于创建SVG(可缩放矢量图形)和VML(矢量标记语言),使得在网页上绘制复杂的图形变得轻而易举。今天我们将深入探讨如何使用`Raphael.js`来绘制柱状图。 `Raphael.js`库的...

    raphael.js

    Raphael.js是一个强大的JavaScript库,专为在Web上创建矢量图形而设计。它基于SVG(Scalable Vector Graphics)和VML(Vector Markup Language)技术,使得在任何现代浏览器上都能实现高质量、可缩放的图形绘制。 ...

    Raphael.js 2.21版源码 以及快速上手手册

    Raphael.js 是一个强大的JavaScript库,专为在Web浏览器中创建矢量图形而设计。它支持SVG(Scalable Vector Graphics)和VML(Vector Markup Language),使得在包括老旧的IE8在内的多种浏览器上都能实现矢量图形的...

    最新的raphael.js文件

    最新的raphael.js文件,因为官网不支持下载,需要拷贝并转码,所以偷懒下,做个文件放这边,有需要的尽管拿吧

    raphael.min.v2.2.1.js

    raphael.min.v2.2.1.js,从官网下载,特地分享,1个积分不多,下载不到吃亏,下载不到上当。

    Raphael.js绘制气泡墙

    Raphael.js是一款强大的JavaScript库,专门用于在网页上创建SVG(Scalable Vector Graphics)图形。这个库使得前端开发者能够方便地实现复杂、交互式的矢量图形,而且兼容多种浏览器,包括那些不支持HTML5 Canvas的...

    raphael.js实现紧凑格子循环

    临时简单弄的,通过raphael.js布置循环关系的数组,其它的拓扑图美观是美观,可惜布局太分散,定位太随机,有点强迫症的处女座弄了个简单的紧凑布局,为了连接箭头和线条,牺牲了部分空间,竖起大于1行,横起设定为大于1的...

    raphael-min.js

    raphael-min.js

    raphael.js做的一个动画效果

    Raphaël.js是一个强大的JavaScript库,专为在Web浏览器上创建矢量图形而设计。它利用SVG(Scalable Vector Graphics)和VML(Vector Markup Language)技术,使得在任何分辨率下都能提供清晰、高质量的图形,而且在...

    comic.js, 用于 HTML5 Canvas & Raphael.js & D3.js & SVG.js的卡通样式图.zip

    comic.js, 用于 HTML5 Canvas & Raphael.js & D3.js & SVG.js的卡通样式图 comic.jsJavascript库,用作 Raphael.js,D3.js, SVG.js 或者作为 HTML5 Canvas 插件的插件,提供动画样式绘制的功能。 请在 comic.js ...

    raphael.js绘制流程图

    Raphaël.js是一款强大的JavaScript库,专门用于在Web浏览器中创建矢量图形。这个库使得开发者能够在HTML5 canvas或SVG(Scalable Vector Graphics)上绘制复杂的图形,包括流程图。流程图是一种用于表示算法、工作...

    raphaelJS制作图表、饼图、柱状图、曲线图

    Raphaël.js 是一个强大的JavaScript库,专用于在Web浏览器中创建矢量图形。它基于SVG(可缩放矢量图形)和VML(矢量标记语言),这两种技术允许在网页上绘制清晰且分辨率独立的图形。Raphaël.js 的主要优势在于它...

    raphael.js实例

    Raphaël.js 是一个JavaScript库,它使得在Web浏览器中创建矢量图形变得简单。这个库基于SVG(Scalable Vector Graphics)和VML(Vector Markup Language),能够在所有现代浏览器以及Internet Explorer 6+上运行。...

    js矢量画图,raphael.js使用案例,svg画图,web画图,b/s画图,网页画图

    基于raphael.js 实现矢量图形的绘制,兼容IE,fireFox,chrome等主流浏览器。 功能包括:画矩形,画圆,画三角形,画直线,画虚线,画大括号,画文字。 要绘制不规则曲线可以在这个基础上自己修改一下。 解压后直接...

Global site tag (gtag.js) - Google Analytics