2015-07-13 529 views
-1

我见过很多关于如何完成像here这样的颜色的完整对象动画的问题和解答。但是,是否有可能通过填充(路径的内部)来制作一个尖锐的移动色块?如何去动画一个SVG呢?使用CSS动画沿着路径填充SVG

+0

如果使用多个渐变色,你可以得到锐利的边缘。 –

+0

尝试在谷歌搜索。 –

+0

我不认为任何人都非常了解你想要什么。你能嵌入(或链接)一张图片吗? –

回答

0

有几个JavaScript库,你可以看看:svgjsSnap.svg ....应该指出你在正确的方向。

只是一段简短的代码来说明如何快速工作。我只会给你一个你想要改变悬停的svg填充的参数。

<svg id="targetSvg" ...> 
    <!-- path forming the upper shell --> 
    <g> 
    <path id="1" fill="#000" d="..."/> 
    <path id="2" fill="#fff" d="..."/> 
    <path id="3" fill="#000" d="..."/> 
    </g> 
</svg> 

的Javascript

//select the svg you want to have the effect on 
s = Snap("#targetSvg"); 

s.select("g").hover(isHover, idHoverOut); 

function isHover() { 
    this.selectAll('path').forEach(function(el){ 
     el.attr({ class: 'fadeIn' }) }); 
}; 

function isHoverOut() { 
    this.selectAll('path').forEach(function(el){ 
     el.attr({ class: 'fadeOut' }) }); 
}; 

CSS样式

.fadein { 
    transition: fill 1s linear; 
    fill:blue; 
} 

.fadeout { 
    transition: fill 1s linear; 
} 
+1

@Paulie_D我只想指向正确的方向。但要明白你的意思。有时候试图帮助别人最终会花费更多的分数。 – ramesh

+0

我明白,将整个SVG或路径淡入不同的颜色会使颜色变化变得很容易,但是如何为沿着路径的颜色变化设置动画效果?就像,如果你想通过一条路径的内部有不同的颜色蛇。 – AzurNova

+0

[This](http://codepen.io/ghepting/pen/xnezB)是我在玩svgs时遇到的一个codepen。这应该有所帮助。 – ramesh