Raphaël 使用 Animation 绘制沿线条移动的圆
使用Raphael 绘制图形时,可以绘制一个圆点沿着指定线条路径进行移动,可以使用Raphael 的 Paper.customAttributes增加处理方法和animation进行动画定义。
只需要指定正确的raphael.js路径,以下代码就可以运行:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Raphaël Animation·</title> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> <script src="raphael.js"></script> </head> <body> <div id="wfpannel" style="background-color: #f0f0f0;"></div> <script> (function(){ var R; this.R = Raphael("wfpannel", 2200, 1200); this.R.customAttributes.AlongPath = function (v) { return v; }; this.R.customAttributes.along = function (v) { var len = this.attr("AlongPath").getTotalLength(); var point = this.attr("AlongPath").getPointAtLength(v * len); return { transform: "t" + [point.x, point.y] + "r" + point.alpha }; }; var ms = 5000; var anim = Raphael.animation({ along: 1 }, ms); var lines = []; var line1 = this.R.path("M20 50L1200 50 ").attr("stroke-width", 1.5).attr("stroke", "#7d7d7d"); var line2 = this.R.path("M20 100L1200 100 ").attr("stroke-width", 1.5).attr("stroke", "#7d7d7d"); var line3 = this.R.path("M20 150L1200 150 ").attr("stroke-width", 1.5).attr("stroke", "#7d7d7d"); var line4 = this.R.path("M20 200L1200 200 ").attr("stroke-width", 1.5).attr("stroke", "#7d7d7d"); var line5 = this.R.path("M20 250L1200 250 C650 450L850,450").attr("stroke-width", 1.5).attr("stroke", "#7d7d7d"); lines.push(line1); lines.push(line2); lines.push(line3); lines.push(line4); lines.push(line5); for (var i = 0; i < lines.length; i++) { var myCircle = this.R.circle(0, 0, 4) .attr("fill", "#FF0000") .attr("stroke", "#FF0000"); myCircle.attr({ along: 0, AlongPath: lines[i] }); myCircle.animate(anim.repeat("Infinity")); } })(); </script> </body> </html>
转载请注明出处,谢谢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)