首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有延迟的svg文本动画

带有延迟的svg文本动画
EN

Stack Overflow用户
提问于 2015-05-08 07:13:40
回答 1查看 524关注 0票数 0

我想要实现类似于这个http://24ways.org/2013/animating-vectors-with-svg/的东西,但是我希望每个字母在前面的结束之后开始绘制。我不知道如何延迟实现这一点。

这是我的代码:

代码语言:javascript
复制
var init = function() {

path = new Array();
length = new Array();

for(var i=1; i<3; i++){
       path[i] = document.getElementById('path'+i);
       length = path[i].getTotalLength();
       path[i].style.transition = path[i].style.WebkitTransition = 'none';

       length[i] = length;
       path[i].style.strokeDasharray = length + ' ' + length;
       path[i].style.strokeDashoffset = length;

       path[i].getBoundingClientRect();
       path[i].style.transition = path[i].style.WebkitTransition = 'stroke-dashoffset 2s ease-in-out';

       path[i].style.strokeDashoffset = '0';
    }
};

init();

在这个例子中,我有两个字母'sp‘,我想要’先画‘,然后在结束时开始'p’字母。在我的例子中,这两个字母同时绘制。如果有人能帮我,我会很感激的。

下面是示例http://jsfiddle.net/thLvLkq0/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 07:29:50

延迟后才开始动画片怎么样?

我用叉子把你的小提琴弄成那样。

http://jsfiddle.net/pz19fL7h/

代码语言:javascript
复制
for(var i=1; i<3; i++) {
    init(i);
    (function(i) {
        window.setTimeout(function() { start(i, duration); }, (i-1)*duration);
    })(i);
}

基本上,他们的行为是:

  1. 初始化(隐藏)所有路径
  2. 在持续一段时间后,将它们全部设置为启动*i延迟

如果已经知道路径绘制的持续时间,这应该很容易做到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30117930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档