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 ...
随机推荐
- Spring Boot Logback应用日志
e Spring Boot Logback应用日志 2015-09-08 19:57 7673人阅读 评论(0) 收藏 举报 . 分类: Spring Boot(51) . 目录(?)[+] 日志对于 ...
- 试用阿里云RDS的MySQL压缩存储引擎TokuDB
以前就用过自己搭建MySQL服务器的两种存储引擎MyISAM和InnoDB(也用过一点Memory方式),在今年初转向阿里云关系型数据库服务RDS的时候,看到可调参数中有一个TokuDB,不过不太了解 ...
- 在 Linux RedHatEL6 环境下安装配置 JDK1.7 + Tomcat7.0 + MySQL5.6
RedHatEL6 JDK安装路径: /usr/java/jdk1.7 Tomcat安装路径:/usr/local/tomcat7/ MySQL安装路径: /usr/local/mysql 总共分为以 ...
- 飘逸的python - 一个最简单的服务器
python拥有这种单独起一个服务器监听端口的能力,用标准库的wsgiref就行. from wsgiref.simple_server import make_server def simple_a ...
- Web开发者的10个最好的云开发环境
1. Cloud9 IDE cloud9 Cloud9是我最喜欢的一个最好的云开发环境,它可以让我在任何时间任何地点进行代码编写.运行和调试.Cloud9对Node.js 和 JavaScript代码 ...
- Codeforces Round #316 (Div. 2C) 570C Replacement
题目:Click here 题意:看一下题目下面的Note就会明白的. 分析:一开始想的麻烦了,用了树状数组(第一次用)优化,可惜没用. 直接判断: #include <bits/stdc++. ...
- Name lookup
Name lookup Types of lookup Argument-dependent lookup Template argument deduction overload resolutio ...
- mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程
这篇教程是介绍如何使用cocos2d-x和box2d来制作一个demo,且此demo能同时运行于ios和android平台.在继续阅读之前,建议您先阅读上一篇教程. 首先,按照上一篇教程,搭建好mac ...
- 「OC」@property @synthesize和id
一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自 ...
- week4_motion_of_ball_1(小球运动)——改进
# Ball motion with an explicit timer import simplegui # Initialize globals width = 600 height = 600 ...