Raphael.js

特点:

  1.兼容VML和SVG
  2.扩展功能——动画

用法:

  //1.创建画布
  let paper=Raphael(x,y,width,height);

  //2.创建形状
  let rect=paper.rect(x,y,width,height);

  //3.设置属性(样式)
  rect.attr({fill: 'red', stroke: 'green'});

  //4.事件
  rect.click(fn);
  rect.unclick(fn);

参数说明:https://www.cnblogs.com/cxmSuperman/p/10582248.html

例子:

 <script>      //基础用法
window.onload=function (){
let paper=Raphael(0,0,800,600); //图形
let rect=paper.rect(100,100,400,300); //属性&样式
rect.attr('fill', '#CCC'); //事件
rect.click(function (){
//this.attr('fill', 'red');
//alert(this.attr('fill')); this.attr({fill: 'red', width: '200', height: '150'});
});
};
</script>
 <script>    //圆角矩形
window.onload=function (){
let paper=Raphael(0,0,800,600); //图形
let rect=paper.rect(100,100,400,300, 10);
};
8 </script>
     <script>   //椭圆
window.onload=function (){
let paper=Raphael(0,0,800,600); //图形
let rect=paper.ellipse(400, 300, 250, 150);
};
8 </script>
    <script>    //图片
window.onload=function (){
let paper=Raphael(0,0,800,600);
  </span><span style="color: #008000;">//</span><span style="color: #008000;">图形</span>
let rect=paper.image('bd_logo.png', 50, 50,540,258<span style="color: #000000;">);
};
</span>&lt;/script&gt;</pre>
    <script>      //path
window.onload=function (){
let paper=Raphael(0,0,800,600);
  </span><span style="color: #008000;">//</span><span style="color: #008000;">图形</span>
let rect=paper.path("M 100 100 L 400 100 400 300 100 300 Z"<span style="color: #000000;">)
};
</span>&lt;/script&gt;</pre>
    <script>     //事件
window.onload=function (){
var paper=Raphael(0,0,800,600);
  </span><span style="color: #008000;">//</span><span style="color: #008000;">图形</span>
<span style="color: #0000ff;">var</span> path=paper.path("M 100 100 L 400 100 400 300 100 300 Z"<span style="color: #000000;">);
path.attr(</span>'fill', 'yellow'<span style="color: #000000;">); path.hover(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
</span><span style="color: #0000ff;">this</span>.attr('fill', 'green'<span style="color: #000000;">);
}, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
</span><span style="color: #0000ff;">this</span>.attr('fill', 'yellow'<span style="color: #000000;">);
}); setTimeout(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
path.unhover();
}, </span>5000<span style="color: #000000;">);
};
</span>&lt;/script&gt;</pre>
    <script>  //transform
window.onload=function (){
var paper=Raphael(0,0,800,600);
  </span><span style="color: #008000;">//</span><span style="color: #008000;">图形</span>
<span style="color: #0000ff;">var</span> rect=paper.rect(100, 100, 300, 200<span style="color: #000000;">);
rect.attr(</span>'fill', 'yellow'<span style="color: #000000;">); rect.click(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
</span><span style="color: #0000ff;">this</span>.attr('transform', 's2,1 r30'<span style="color: #000000;">);
});
};
</span>&lt;/script&gt;</pre>
<!DOCTYPE html>    //动画
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="raphael.js" charset="utf-8"></script>
<script>
window.onload=function (){
let paper=Raphael(50,50,800,600);
let types=['linear', 'easeIn', 'easeOut', 'easeInOut', 'backIn', 'backOut', 'elastic', 'bounce'];
let oBtn=document.getElementById('btn1');
  </span><span style="color: #008000;">//</span><span style="color: #008000;">图形</span>
let rects=types.map((type,index)=&gt;<span style="color: #000000;">{
</span><span style="color: #0000ff;">var</span> rect=paper.rect(0, 60*index, 50, 50<span style="color: #000000;">);
rect.attr(</span>'fill', 'yellow'<span style="color: #000000;">); </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> rect;
}); </span><span style="color: #008000;">//

oBtn.onclick=function (){

rects.forEach((rect, index)=>{

rect.animate({'x': 600}, 3000, types[index]);

});

};

};

</script>

</head>

<body>

<input type="button" name="" value="走" id="btn1">

</body>

</html>

    <script>    //   好玩的东西
window.onload=function (){
let paper=Raphael(50,50,800,600);
  let path</span>=paper.path('M 100 100 L 400 100 400 300 100 300 Z'<span style="color: #000000;">);
path.attr(</span>'fill', 'yellow'<span style="color: #000000;">); path.hover(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
</span><span style="color: #0000ff;">this</span>.animate({'path': 'M 250 100 L 250 100 400 300 100 300 Z'}, 700, 'bounce'<span style="color: #000000;">);
}, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (){
</span><span style="color: #0000ff;">this</span>.animate({'path': 'M 100 100 L 400 100 400 300 100 300 Z'}, 700, 'bounce'<span style="color: #000000;">);
});
};
</span>&lt;/script&gt;</pre>

Raphael.js--基础1的更多相关文章

  1. 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)

    (原文地址:http://www.cnblogs.com/idealer3d/p/LearningRaphaelJSVectorGraphics.html) 前面3篇博文里面,我们讲解了一本叫做< ...

  2. 强大的矢量图形库:Raphael JS 中文帮助文档及教程

    Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库.它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出 ...

  3. Raphael Js矢量库API简介:

    Raphael Js矢量库API简介:Raphael Javascript 是一个 Javascript的矢量库. 2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQT ...

  4. Raphael.js改变元素层叠顺序

    Raphael.js 元素(Element)改变层叠顺序,Raphael.js是一个矢量绘图库兼容svg和vml.初学时感觉css的z-index能搞定,结果是不支持,不过矢量绘图符合dom标准.可以 ...

  5. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  6. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  7. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

  8. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  9. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  10. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

随机推荐

  1. 报文分析4、TCP协议的头结构

    TCP协议的头结构 来源端口(2字节) 目的端口(2字节) 序号(4字节) 确认序号(4字节) 头长度(4位) 保留(6位) URG ACK PSH RST SYN PIN 窗口大小(2字节) 校验和 ...

  2. XP下ubuntu双系统安装方法

    利用u盘将iso刻录 从u盘启动 连续按alt+f2 进入ubuntu试用 打开终端 输入 sudo umount -l /cdrom sudo umount -l /isodevice 然后安装un ...

  3. 2019OO第一单元总结

    第一次作业 (你没看错,就一个类...) 通过正则表达式处理输入的字符串,提取出每一项的系数和指数,在输出的时候,应当考虑到合并同类项和正项提前的问题,使得最终的输出最短. 我第一次作业的代码超级难看 ...

  4. eclipse启动报错

    我的是win64位系统,eclipse,jdk1.8    64位 原因:网上说是jdk和eclipse的版本不一致导致的(32位jdk64位eclipse,或者相反): 解决过程: 安装了jdk1. ...

  5. c#重命名文件,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”

    修改远程服务器的文件名,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”,“System.NotSupportedExcept ...

  6. 千万不要随意在网上下载ojdbcjar包来使用,ORA-01461错误解决

    我在登录项目时,点击某一按钮提示ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值,但是项目在我的同事那里可以完好运行.最后百度 发现问题所在: 数据库与客户端的JDBC驱动不匹配. ...

  7. 改造一下jeecg中的部门树

    假装有需求 关于 jeecg 提供的部门树,相信很多小伙伴都已经用过了,今天假装有那么一个需求 "部门树弹窗选择默认展开下级部门",带着这个需求再次去探索一下吧. 一.改造之前的部 ...

  8. Redis集群方案怎么做?

    转载自:https://www.jianshu.com/p/1ecbd1a88924 Redis集群方案 Redis数据量日益增大,而且使用的公司越来越多,不仅用于做缓存,同时趋向于存储这块,这样必促 ...

  9. gitbook build/serve 失败,Error: ENOENT: no such file or directory, stat ...

    我使用的 gitbook 版本 CLI version: 2.3.2 GitBook version: 3.2.3 在使用 gitbook 生成文档时,发现编译偶尔不规律性地出现错误 d:\Mine\ ...

  10. vue深度监控数据改变,缓存数据到本地

    项目效果图: var vm = new Vue({ el:'#app', data:{ students:[], }, watch:{ students:{ handler(){ localStora ...