Raphael.js--基础1
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></script></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></script></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></script></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></script></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)=><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></script></pre>
Raphael.js--基础1的更多相关文章
- 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)
(原文地址:http://www.cnblogs.com/idealer3d/p/LearningRaphaelJSVectorGraphics.html) 前面3篇博文里面,我们讲解了一本叫做< ...
- 强大的矢量图形库:Raphael JS 中文帮助文档及教程
Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库.它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出 ...
- Raphael Js矢量库API简介:
Raphael Js矢量库API简介:Raphael Javascript 是一个 Javascript的矢量库. 2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQT ...
- Raphael.js改变元素层叠顺序
Raphael.js 元素(Element)改变层叠顺序,Raphael.js是一个矢量绘图库兼容svg和vml.初学时感觉css的z-index能搞定,结果是不支持,不过矢量绘图符合dom标准.可以 ...
- js 基础篇(点击事件轮播图的实现)
轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...
- js 基础
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...
- js基础练习二之简易日历
今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- JS基础(超级简单)
1 JS基础(超级简单) 1.1 数据类型 1.1.1 基本类型: 1) Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2) ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
随机推荐
- [dev][socket] unix domain socket删除socket文件
问题 在使用unix domain socket的时候,bind之后,会在本地路径里 产生一个与path对应的socket文件. 如何正确的在用完socket之后,对其销毁呢? 方案 使用 unlin ...
- group by 用法解析
group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...
- instrument 之 core animation
1.Color Blended Layers 图层混合 需要消耗一定的GPU资源,避免设置alpha小于1,省去不必要的运算 2.Color Hits Green and Misses Red 光栅化 ...
- Linux主机之间ssh免密登录配置方法
由于公司的生产环境有很多台Linux的CentOS服务器, 为了方便机子(假设两台机子A,B)互相之间免密ssh, scp命令操作,配置如下 1. 在A.B上分别创建本机的公钥和私钥,输入命令后连续三 ...
- AIX stack_hard参数
OS:AIX 7.1 root.oracle.grid用户查看资源限制,其中stack受限,需要在/etc/security/limits中增加stack_hard = -1,受硬限制限制! [ora ...
- Schlumberger Petrel 2016.3 地震解释 油藏模拟
Schlumberger Petrel 2016.3 地震解释 油藏模拟世界上顶尖的三维地质建模软件,软件为用户提供的工具可以用于地震解释.地质建模.油藏数 值模拟等方面的使用,清晰的地质模型可以描述 ...
- Windows SFTP 的安装
用于Windows系统的免费SFTP服务器-Free SFTP Servers 前不久,有人问我:“怎么从 Linux 系统传文件到 Windows 服务器,不能用 FTP 协议.” 文件数量不大.用 ...
- C语言实现迷宫小游戏
代码如下,时间太晚,有空补注释: #include<stdio.h> #include<string.h> #include<time.h> #include< ...
- 一个比较难忘的BUG
本学期开设了软件测试课程,在课上有讨论到bug,想到bug,真是很令人头疼的东西,相信每个程序都多多少少会有几个头疼的bug. 初学java时写过一个字符串判断的循环,之前学的C++字符类型用“==” ...
- WatchDirService 实时监控
import config.Config; import java.io.IOException; import java.nio.file.*; import java.util.List; imp ...