Javascript SVG Raphael jQuery构建路径/路径
如果我有一个像这样的动画圈,有没有一种方法可以让它在画布上留下一条1px纯白的永久轨迹 我已尝试动态构建路径,但无法使其正常工作Javascript SVG Raphael jQuery构建路径/路径,javascript,jquery,svg,raphael,Javascript,Jquery,Svg,Raphael,如果我有一个像这样的动画圈,有没有一种方法可以让它在画布上留下一条1px纯白的永久轨迹 我已尝试动态构建路径,但无法使其正常工作 提前感谢,如果您有任何帮助,我们将不胜感激。您可以这样做: 编辑:我说过,如果示例中的圆不是直线移动的,那么这将不起作用,如果您想为随机移动做这类事情,SVG将是不够的(但另一方面,画布将是理想的)。Zero在他的回答中证明了我的错误,我所写的被认为是对SVG的批评——离我很远!SVG太棒了。您可以这样做: 编辑:我说过,如果示例中的圆不是直线移动的,那么这将不起作用
提前感谢,如果您有任何帮助,我们将不胜感激。您可以这样做:
编辑:我说过,如果示例中的圆不是直线移动的,那么这将不起作用,如果您想为随机移动做这类事情,SVG将是不够的(但另一方面,画布将是理想的)。Zero在他的回答中证明了我的错误,我所写的被认为是对SVG的批评——离我很远!SVG太棒了。您可以这样做:
编辑:我说过,如果示例中的圆不是直线移动的,那么这将不起作用,如果您想为随机移动做这类事情,SVG将是不够的(但另一方面,画布将是理想的)。Zero在他的回答中证明了我的错误,我所写的被认为是对SVG的批评——离我很远!SVG真是太棒了。我不知道为什么SVG与它的乡村表亲canvas元素相比会受到如此糟糕的评价。令人惊讶的是,在认真尝试探索SVG的功能之前,有多少次SVG被视为不充分或不合适 请看一看 这主要是由路径上移动点的动态评估驱动的,如下所示:
function arrowline( canvas, pathstr, duration, attr, callback )
{
var guide_path = canvas.path( pathstr ).attr( { stroke: "none", fill: "none" } );
var path = canvas.path( guide_path.getSubpath( 0, 1 ) ).attr( attr );
var total_length = guide_path.getTotalLength( guide_path );
var start_time = new Date().getTime();
var interval_length = 25;
var interval_id = setInterval( function()
{
var elapsed_time = new Date().getTime() - start_time;
var this_length = elapsed_time / duration * total_length;
var subpathstr = guide_path.getSubpath( 0, this_length );
attr.path = subpathstr;
path.animate( attr, interval_length );
if ( elapsed_time >= duration )
{
clearInterval( interval_id );
if ( callback != undefined ) callback();
}
}, interval_length );
return path;
}
我向任何人挑战,用HTML画布找到一个比这更经济的解决方案。如果你打算在这个小部件中增加任何交互性,请考虑在经济评价中SVG的事件绑定是多么简单。 < P>我不知道SVG为什么比它的国家表兄弟,画布元素得到这么糟糕的RAP。令人惊讶的是,在认真尝试探索SVG的功能之前,有多少次SVG被视为不充分或不合适 请看一看 这主要是由路径上移动点的动态评估驱动的,如下所示:
function arrowline( canvas, pathstr, duration, attr, callback )
{
var guide_path = canvas.path( pathstr ).attr( { stroke: "none", fill: "none" } );
var path = canvas.path( guide_path.getSubpath( 0, 1 ) ).attr( attr );
var total_length = guide_path.getTotalLength( guide_path );
var start_time = new Date().getTime();
var interval_length = 25;
var interval_id = setInterval( function()
{
var elapsed_time = new Date().getTime() - start_time;
var this_length = elapsed_time / duration * total_length;
var subpathstr = guide_path.getSubpath( 0, this_length );
attr.path = subpathstr;
path.animate( attr, interval_length );
if ( elapsed_time >= duration )
{
clearInterval( interval_id );
if ( callback != undefined ) callback();
}
}, interval_length );
return path;
}
我向任何人挑战,用HTML画布找到一个比这更经济的解决方案。如果你打算在这个小部件中增加任何交互性,请考虑在经济评价中SVG的事件绑定是多么简单。我不认为“它不起作用,所以你应该尝试其他东西”真的是一个答案,特别是当断言是不正确的。好吧,你的小提琴石,你赢了!我并不是要讨论SVG,但我的意思是,有了SVG,轨迹越长、越复杂,SVG图形就越复杂,很快就会达到极限。然而,使用画布的方法,你可以永远继续下去(你只需要画一个新的片段并进行迭代)。你当然是对的,有些地方你绝对不能去。但我一直对它能做什么感到惊讶,而且使用拉斐尔时,它能如此轻松。只是想得到它应得的!我不认为“它不起作用,所以你应该尝试其他东西”真的构成了一个答案,特别是当断言不正确时。好吧,你的小提琴摇滚,你赢了!我并不是要讨论SVG,但我的意思是,有了SVG,轨迹越长、越复杂,SVG图形就越复杂,很快就会达到极限。然而,使用画布的方法,你可以永远继续下去(你只需要画一个新的片段并进行迭代)。你当然是对的,有些地方你绝对不能去。但我一直对它能做什么感到惊讶,而且使用拉斐尔时,它能如此轻松。只是想得到它应得的+我也经历过对SVG的过度仇恨/无知。它被低估了。很好的例子,我喜欢SVG+我也经历过对SVG的过度仇恨/无知。它被低估了。很好的例子,我喜欢SVG!