Raphael入门实例:动画与箭头
raphael 实例
动画
隐藏和显示参数说明
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var c = paper.circle(50, 50, 40);function hide() { c.hide(); setTimeout(show, 1000);}function show() { c.show(); setTimeout(hide, 1000);}setTimeout(hide, 1000); |
改变属性参数说明
|
1
2
3
4
5
6
7
8
9
10
|
var c = paper.circle(50, 50, 40);function change_attr() { //改变颜色 c.attr('stroke', Raphael.hsb(Math.random(), 1, 1)); setTimeout(change_attr, 1000);}setTimeout(change_attr, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
var c = paper.circle(50, 50, 40);function change_one_attr() { //改变一个属性 c.attr('stroke', '#FFF'); setTimeout(change_muti_attr, 1000);}function change_muti_attr() { //改变多个属性 c.attr({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 r: 10 * (Math.random() * 5 + 1), //半径 stroke: Raphael.hsb(Math.random(), 1, 1) //颜色 }); setTimeout(change_one_attr, 1000);}setTimeout(change_one_attr, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
// 绘制箭头var c = paper.path("M10 10L100 10").attr({ 'arrow-end':'classic-wide-long', stroke: "#fff", "stroke-width": 2});var c = paper.path("M10 30L100 30").attr({ 'arrow-end':'block-wide-long', stroke: "#f00", "stroke-width": 2});var c = paper.path("M10 50L100 50").attr({ 'arrow-end':'open-wide-long', stroke: "#ff0", "stroke-width": 2});var c = paper.path("M10 70L100 70").attr({ 'arrow-end':'oval-wide-long', stroke: "#0f0", "stroke-width": 2});var c = paper.path("M10 90L100 90").attr({ 'arrow-end':'diamond-wide-long', stroke: "#0ff", "stroke-width": 2}); |
动画参数说明
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; // 播放动画,持续时间1000毫秒 c.animate({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms); setTimeout(animate, 2000);}setTimeout(animate, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// 效果同上,但是利用了动画结束时的回调函数var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; c.animate({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms, function(){ setTimeout(animate, 1000); });}setTimeout(animate, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// 效果同上,使用动画对象var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; var anim = Raphael.animation({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms, function(){ setTimeout(animate, 1000); }); c.animate(anim);}setTimeout(animate, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// 效果同上,调用动画对象的delay()方法var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; var anim = Raphael.animation({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms, function(){ setTimeout(animate, 0); }); c.animate(anim.delay(1000));}setTimeout(animate, 0); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// 动画对象的过渡效果及repeat()方法var c = paper.circle(50, 50, 40);function animate() { var ms = 2000; var anim = Raphael.animation({ 50: { r: 60, stroke: '#f00' }, 100: { r: 40, stroke: '#fff' } }, ms); c.animate(anim.repeat("Infinity")); //Infinity为无限次}animate(); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// 设置效果的曲线类型var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; var easing = 'elastic'; c.animate({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms, easing, function(){ setTimeout(animate, 1000); });}setTimeout(animate, 1000); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// 设置随机曲线类型var c = paper.circle(50, 50, 40);function animate() { var ms = 1000; var easing = ['elastic', '', 'bounce', 'ease-in-out'][Math.round(Math.random() * 3)]; c.animate({ cx: 50 + Math.random() * 120, //圆心x坐标 cy: 50 + Math.random() * 100, //圆心y坐标 }, ms, easing, function(){ setTimeout(animate, 1000); });}setTimeout(animate, 1000); |
Raphael入门实例:动画与箭头的更多相关文章
- Raphael入门实例:绘图
raphael 实例 开始 创建画布参数说明 创建一个画布对象. 下面每个例子都会创建一个320*200大小的画布. ? 1 2 // 1.在视口的 (10,50) 坐标位置上创建画布 var pap ...
- let import export React入门实例教程 connect provider combineReducers 箭头函数 30分钟掌握ES6/ES2015核心内容 Rest babel
let与var的区别 http://www.cnblogs.com/snandy/archive/2015/05/10/4485832.html es6 导入导出 http://www.csdn.ne ...
- React 入门实例教程(转载)
本人转载自: React 入门实例教程
- struts入门实例
入门实例 1 .下载struts-2.3.16.3-all .不摆了.看哈就会下载了. 2 . 解压 后 找到 apps 文件夹. 3. 打开后将 struts2-blank.war ...
- Vue.js2.0从入门到放弃---入门实例
最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...
- wxPython中文教程入门实例
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下 wxPython中文教程入门实例 wx.Window 是一个基类 ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- Spring中IoC的入门实例
Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...
- Node.js入门实例程序
在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...
随机推荐
- PowerShell Remove all user defined variable in PowerShell
When PS scripts executes, it is possibly create much user defined variables. So, sometimes these var ...
- nginx+tomcat+redis完成session共享
本文记录nginx+redis+tomcat实现session共享的过程 nginx安装:http://blog.csdn.net/grhlove123/article/details/4783467 ...
- Python的安装和详细配置(转)
Python是一种面向对象.解释型计算机程序设计语言.被认为是比较好的胶水语言.至于其他的,你可以去百度一下.本文仅介绍python的安装和配置,供刚入门的朋友快速搭建自己的学习和开发环境.本人欢迎大 ...
- powerdesigner数据建模
目标: 本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念.一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2 ...
- Fractal(递归,好题)
Fractal Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8341 Accepted: 3965 Descripti ...
- C++ Primer 学习笔记_75_模板与泛型编程 --模板定义
模板与泛型编程 --模板定义 引言: 所谓泛型程序就是以独立于不论什么特定类型的方式编写代码.使用泛型程序时,我们须要提供详细程序实例所操作的类型或值. 模板是泛型编程的基础.使用模板时能够无须了解模 ...
- 2014多校3 Wow! Such Sequence!段树
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=4893 这个问题还真是纠结啊--好久不写线段树的题了.由于这几天学伸展树.然后认为线段树小case了. ...
- linux进程间通信之信号
1.wait()函数 原型:pid_t wait(int *status) 子进程退出时,它向父进程发送一个SIGCHLD信号,默认情况是总是忽略SIGCHLD信号,此时进程状态一直保留在内存中,因 ...
- STL之string
string构造函数,很多重载函数: #include <iostream> #include <string> using namespace std; int main() ...
- C#后台发送HTTP请求
using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Syst ...