【问题标题】:Gradually change fill in SVG element using transform in Snap SVG使用 Snap SVG 中的变换逐渐更改 SVG 元素的填充
【发布时间】:2016-01-27 14:05:35
【问题描述】:

我正在尝试在 SVG 中模拟逐渐“填充”(如水填充杯子)一个元素。我在戴口罩时遇到了麻烦。对于以下内容,假设包含 snap.svg-min.js:

<script>
var s = Snap(500,500);
var a = s.rect(0,100,100,100);
var b = s.ellipse(50,50,30,60);
b.attr({
    fill: "white"
});
a.animate({transform: 't0, -100'}, 500, mina.easin);
a.attr({
    mask: b
});
</script>

a.attr 中的蒙版最初会剪切图像,然后将其向上移动。我想填充向上的椭圆。

有点像下面的倒数:

<script>
var s = Snap(500,500);
var a = s.rect(0,100,100,100);
var b = s.ellipse(50,50,30,60);
b.attr({
    fill: "white"
});
a.animate({transform: 't0, -100', mask: b}, 500, mina.easin);
</script>

【问题讨论】:

    标签: svg snap.svg svg-animate


    【解决方案1】:

    你部分在那里,有几种不同的方法,你也可以使用剪辑而不是蒙版,但这是我认为你正在尝试的方式......

    换掉面具..

    var a = s.rect(0,0,120,120).attr({ fill: 'white', transform: 't0,100' });
    var b = s.ellipse(50,50,30,60);
    
    b.attr({
        fill: "red",
        mask: a
    });
    
    a.animate({transform: 't0,60' }, 2000, mina.easin)
    

    jsfiddle

    【讨论】:

    • 谢谢!效果很好。我尝试了类似的东西,但它对我不起作用。也许我搞砸了语法。
    • 没问题,如果有效,别忘了接受答案。
    猜你喜欢
    • 2021-12-05
    • 2018-06-15
    • 1970-01-01
    • 2016-09-16
    • 2017-10-29
    • 2017-04-10
    • 1970-01-01
    • 2016-11-24
    • 2015-12-21
    相关资源
    最近更新 更多