Raphael.js绘制循环动画
来源:互联网 发布:软件功能ppt介绍 编辑:程序博客网 时间:2024/06/16 16:46
今天有人叫我帮看了一个程序;
需要实现的是点击按钮,椭圆线段的一段移动到另外一端;椭圆所关联的另一条线段路径也随之改变;再次点击按钮,效果反之;
不多说了两种代码;
第一种是我做的;
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Raphael</title><script src="../js/jquery.js"></script><script src="../js/raphael.js"></script><script>var paper;var state = false;var e;$(function(){paper = new Raphael("holder",640,480);var path = paper.path("M 10,10 L 10,300");var over = paper.path("M 10 10 L 316 248").attr("stroke","red");var circle = paper.circle(316, 248, 5).attr({stroke : "none",fill : "red"});e = paper.ellipse(10, 10, 7, 3).attr({stroke : "none",fill : "red"});e.onAnimation(function() {console.log(this)var x = this.attr("cx");var y = this.attr("cy");over.attr({path : "M 316,248L" +x+ "," +y+ "",stroke : "red"});});})function start(){if(state){e.animate({"cx":10,"cy":10},3000);state = false;}else{e.animate({"cx":10,"cy":300},3000);state = true;}} </script></head><body><div id="holder"></div><input type="button" value="click" onclick="start()" ></body></html>
第二种是他修改的
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Raphael</title><script src="../js/raphael.js"></script><script>Raphael("holder", 640, 480, function() {var r = this, p = r.path("M10,10L10,300"), flag = 0, over = r.path().attr({stroke : "#fff"}), len = p.getTotalLength(), e = r.ellipse(0, 0, 7, 3).attr({stroke : "none",fill : "red"}).onAnimation(function() {var t = this.attr("transform");over.attr({path : "M316,248L" + t[0][1] + "," + t[0][2] + "z",stroke : "red"});});r.circle(316, 248, 5).attr({stroke : "none",fill : "red"});r.customAttributes.along = function(v) {var point = p.getPointAtLength(v * len);return {transform : "t" + [ point.x, point.y ] + "r" + point.alpha};};e.attr({along : 0});pathButton = r.image("按钮图片地址", 510, 288, 50, 43).attr({cursor : "pointer",title : "xxx"}).click(function() {if (flag == 0) {e.animate({along : 1}, 2e4, function() {e.attr({along : 1});});flag = 1;} else {e.animate({along : 0}, 2e4, function() {e.attr({along : 0});});flag = 0;}});});</script></head><body><div id="holder"></div></body></html>
两种都能实现
效果图基本如下:
0 0
- Raphael.js绘制循环动画
- Raphael.js绘制气泡墙
- Raphael.js最基本绘制示例代码
- Raphael绘制矩形
- Raphael绘制圆形
- Raphael绘制线段
- Raphael绘制折线
- Raphael绘制五角星
- Raphael绘制文本
- Raphael绘制箭头arrow
- raphael矢量图绘制工具
- js是如何实现拖拽raphael.js所绘制图像的
- Web流程图绘制使用raphael
- Raphael.js API之Raphael.svg(),Element.paper,Element.pause(),Raphael.pathBBox(),Raphael.st,Raphael.el
- Raphael.js API之 Element.raphael,Paper.raphael,Paper.print()
- Raphael.js API之 Raphael.getTotalLength(),Raphael.fn
- Raphael js库简介
- Raphael.js简易教程
- iOS objective-c之-5:数据类型
- Android高手进阶——Adapter深入理解与优化
- android 应用requestFeature() must be called before adding content报错
- android media localPlayer setDataSource 流程
- 安卓中的偏好设置:Preference
- Raphael.js绘制循环动画
- grep用法
- 判断一个数是否为回文
- windows下Eclipse远程连接linux hadoop远程调试 经验(一)
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- Ubuntu系统下嵌入式inux动态库的开发
- linux 下c++线程池的简单实现(在老外代码上添加注释)
- C++对象指针
- 手写yueshu