[英]Snap.svg text with textpath does not animate as expected
我在使用snap.svg设置文本动画时遇到问题。 我正在将文本从弧的左下角移至弧的顶点。 我正在使用标准的Snap.animate功能及其内置的setter函数。
当我为随机元素(例如下面示例中包含的圆)设置动画时,动画的行为将达到预期的效果。 当我为纯文本设置动画时,它也表现出预期的效果。 但是,当我向该文本添加textpath属性时,动画以我不理解的方式发挥不同的作用。
该文本按预期进行动画处理:
svg.text(0,200,'Regular Text').attr({'text-anchor': 'middle'});
示例(将鼠标悬停在动画上): http : //codepen.io/anon/pen/pJbmYW
而此文本在期望的目标位置(也就是弧线的顶部)附近停了下来:
var path = 'M0 200 A 200 200, 0, 1, 1, 400 200';
svg.text(0,200,'Arced Text').attr({'text-anchor': 'middle',
'textpath':path});
示例(将鼠标悬停在动画上): http : //codepen.io/anon/pen/GJqaVp
我想我不明白在文本对象上添加textpath是做什么的,因为看来我应该能够在添加路径之前对它的x和y坐标进行动画处理/变换。
欢迎有任何见识或建议。 谢谢。
我认为在这种情况下,为textPath设置x,y动画实际上没有任何意义(我可能是错误的),因为这对于起伏的行意味着什么。
我认为您想要对startOffset进行动画处理。 例如...
Snap.animate(0, arc.getTotalLength()/2,
function(val){
var point = arc.getPointAtLength(val);
circ.attr({cx: point.x,
cy: point.y});
arcText.textPath.attr({ startOffset: val})
},1000,mina.easeinout);
这是主要变化...
arcText.textPath.attr({ startOffset: val})
Codepen (悬停在上方)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.