首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉斐尔JS路径的“‘Erase”动画

拉斐尔JS路径的“‘Erase”动画
EN

Stack Overflow用户
提问于 2014-09-23 15:36:55
回答 1查看 411关注 0票数 0

我已经用RaphaelJS创建了一个行动画(参见这里的jsfiddle - http://jsfiddle.net/7n040zdu/)。我正在尝试创建一个动画,在这个动画发生之后,基本上是删除了最初的动画。也就是说,这条线的动画方式和它被动画的方式一样-沿着相同的路径,相同的持续时间,相同的方向。

我试过在上面画另一条路,但这个解决方案并不可取。如果初始路径与自身重叠,则与另一条路径擦除将显示动画不是“擦除”而是重叠。

我很难在Raphael文件中找到一些类似于此的东西。

有关守则如下:

HTML

代码语言:javascript
复制
<body>
<div class='drawings' id="draw0"></div>
</body>

CSS

代码语言:javascript
复制
body {
    background-color: black;
}

JS

代码语言:javascript
复制
var animateLine = function(canvas, colorNumber, strokeWidth, pathString) {
    var line = canvas.path(pathString).attr({
        stroke: colorNumber
    });

    var length = line.getTotalLength();

    $('path[fill*="none"]').animate({
        'to' : 1
    }, {
        duration: 1000,
        step: function (pos, fx) {
            var offset = length * fx.pos;
            var subpath = line.getSubpath(0, offset);
            canvas.clear();
            canvas.path(subpath).attr({
                stroke: colorNumber,
                "stroke-dasharray" : "",
                "stroke-width" : strokeWidth
            });
        }
    });
}

var canvas = new Raphael('draw0', 50,50);
var drawPath1 = 'M0.767,0.915 M48.538,20.228L0.767,0.915l3.896,39.312L48.538,20.228L37.663';

animateLine(canvas, '#FFF', '1.5', drawPath1);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-24 19:12:38

基于@Ian对最初问题的评论,我能够使用一条路径,然后对svg的dashoffset进行动画化,但为了使它真正正常工作,需要做一些进一步的更改。

最初,SVG路径的css是用以下参数设置的:'stroke-dasharray': '9999px''stroke-dashoffset': '9999px'。然后将stroke-dashoffset从9999px动画到9999px,减去路径的长度。在初始动画结束时,必须再次设置css,这一次是:'stroke-dasharray': '999 999''stroke-dashoffset': '9999px'。此时,stroke-dashoffset再次被动画化,这一次是'stroke-dashoffset': (9999-(length of path)-100)+'px'

这里有一个显示这一点的小提琴:m/94ze4ajj/

*请注意,在“小提琴”中,我添加了更多具有不同不透明度和时间偏移的路径,以使线条动画的尖端出现淡出的错觉。

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

https://stackoverflow.com/questions/25999188

复制
相关文章

相似问题

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