先常规先引入Raphael库:

  1. <script src="raphael.js" type="text/javascript"></script>

然后就很简单了,直接操作,也不用再手动写svg什么的。

1.新建画布

  1. //x,y是画布的定位,w,h是画布的宽高
  2. let paper = Raphael(x,y,w,h);

2.建立图形

  1. // Raphael总共有6种图形画,其中path是万能的
  2. let rect = paper.rect(50,50,200,100);
  3. let circle = paper.circle(400,200,50);
  4. let ellipse = paper.ellipse(750,200,100,80);
  5. let path = paper.path('M 250,250 L 250,250 450,400 50,400 Z');
  6. let img= paper.image('1.jpg',550,250,428,252);
  7. let text= paper.text(250,500,'哈哈哈');

3.改变图形属性和样式

  1. //Rapheal有两种改变属性样式的方法attr和animate
  2.  
  3. //attr和jq的一样,既可以传json又可以传单个
  4. circle.attr('fill','#a00');
  5. ellipse.attr({'fill':'blue','stroke-width':'10'});
  6.  
  7. //animate先传改变的属性样式的json,再传动画时间,再传动画插值方法
  8. //插值方法大概有linear,easeIn,easeOut,bounce,elastic,backIn,backOut
  9. rect.animate({stroke:'#a33',fill:'green','stroke-width':'20','stroke-opacity':'.5',width:'100',rx:'20',rt:'40'},800,'bounce');

4.图形绑定事件

事件大概有click、hover、mousedown、mousedown、mousemove、mouseup、touchstart、touchmove、touchend。。。。

  1. //和jq绑定事件差不多,例如下面下这个,hover就执行第一个,buhover就执行第二个
  2. path.hover(function(){
  3. path.animate({path:'M 450,250 L 450,300 450,600 80,500 Z','fill':'#fc0'},800,'bounce');
  4. },function(){
  5. path.animate({path:'M 250,250 L 250,250 450,400 50,400 Z','fill':'#0fc'},800,'bounce');
  6. })

5.变形

transform是被集成到了attr和animate里面了

  1. img.attr({'transform':'t50,200 r30 s1.2,1'})
  2. img.animate({'transform':'t50,200 r30 s1.2,1'},800,'linear')

对应变换字母 translate:t———rotate:t———scale:s,变换都是不带单位的(所有svg操作都不应该带单位),和css3的变换是一样都是自身坐标轴变换,和原生的svg不一样

强大的svg操作库——Raphael的更多相关文章

  1. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  2. php版的redis操作库predis操作大全

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/146.html predis是php连接redis的操作库,由于它完全使用 ...

  3. 2014 年10个最佳的PHP图像操作库

    2014 年10个最佳的PHP图像操作库   Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Pytho ...

  4. 2014 年10个最佳的PHP图像操作库--留着有用

    Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Python, PHP, OCaml等等诸多编程语言的支 ...

  5. 10个最佳的PHP图像操作库

    Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Python, PHP, OCaml等等诸多编程语言的支 ...

  6. zBase --轻量级DOM操作库

    项目地址:ZengTianShengZ-github zBase-1.2.0 --v3 修复部分bug,添加AMD规范测试 zBase-1.1.0 --v2 对 v1 版本做了升级,优化DOM查找,简 ...

  7. BananaPi python-Mysql 操作库

    BananPi python-Mysql 操作库 1.首先mysql.python环境安装 2.下载MySQL-python-1.2.3.tar.gz 并解压 tar xfz MySQL-python ...

  8. WPF: WpfWindowToolkit 一个窗口操作库的介绍

    在 XAML 应用的开发过程中,使用MVVM 框架能够极大地提高软件的可测试性.可维护性.MVVM的核心思想是关注点分离,使得业务逻辑从 View 中分离出来到 ViewModel 以及 Model ...

  9. 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理

    [源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...

随机推荐

  1. Python学习笔记 -- 第五章

    模块 使用模块可以提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块: ...

  2. Ajax cross domain

    xhrFields:{ withCredentials:true}, https://stackoverflow.com/questions/2054316/sending-credentials-w ...

  3. 快速简化Android截屏工作

    1.安装Notepad++v6.9 2.插件管理器里Plugin Manager安装AndroidLogger 3.AndroidLogger里的capture功能抓取Android的当前屏幕截图到w ...

  4. 通过JDOM实现XML与String的相互转换

    利用JDOM实现XML与String之间的相互转换: package com.util.xml; import java.io.ByteArrayOutputStream; import java.i ...

  5. vue的自定义组件和组件传值

    <div id="app"> <div>{{pmessage}}</div> //父组件 <child :message="pm ...

  6. ASP.NET MVC与WebForm对比

    MVC优点:1.分离更彻底,分层清晰,易于维护和扩展.2.验证更加方便快捷.3.无ViewState,页面更加干净4.路由更容易定义url,对SEO比较好.5.强类型VIEW实现,更安全高效. Web ...

  7. 关于适用base64对图片进行编码在服务器上性能的相关讨论

    周五在写open api的时候 和

  8. 关于一个常用的CheckBox样式

    我们在使用CheckBox的时候,原始的样式有时不能满足我们的需求,这是我们就需要更改其模板,比如我们常用的一种,在播放器中“播放”.“暂停”按钮,其实这也是一种CheckBox,只不过我们只是修改了 ...

  9. Lodop打印语句最基本结构介绍(什么是一个任务)

    Lodop中最基本的打印过程至少有初始化语句.添内容语句和打印语句三部分组成,例如: LODOP.PRINT_INIT("打印任务名"); //首先一个初始化语句 LODOP.AD ...

  10. C从源码到运行发生了哪些事

    一个C/C++程序从源代码到可执行程序主要经历了四个阶段: ①预处理.包括展开宏.处理#include,#if,#ifdef等指令.删除注释.还有一些其他操作.相关命令:gcc -E或cpp ②编译. ...