您应该可以使用 Raphael 的 element.getSubpath() 界面来做到这一点。
子路径允许您在某些点之间获得“路径的路径”。所以,如果你已经有了路径,比如
var mainPath = paper.path("M10,10R20,70 30,40 40,80 50,10 60,50 70,20 80,30 90,90");
您可以获得一个子路径,它为您提供具有任意起点和终点的该路径的“切片”:
var subpathString = mainpath.getSubpath(20, 50);
然后您可以使用该路径创建一个新元素,例如,不同的笔划宽度:
var subpath = paper.path(subpathString);
subpath.attr({'stroke-width' : 4});
这将看起来像这样的 jsFiddle:http://jsfiddle.net/1ndmz3d6/3/
例如,要将路径的最后 10 个像素设为红色,您只需要知道路径的长度即可。使用element.getTotalLength(),这很容易:
var pathLength = mainPath.getTotalLength();
var subpathStart = pathLength - 10;
var subpathString = mainPath.getSubpath(subpathStart, pathLength);
var highlightedPathSegment = paper.path(subpathString);
highlightedPathSegment.attr({'stroke-width' : 2, stroke : '#FF0000'});
你应该有它:http://jsfiddle.net/1ndmz3d6/5/