【发布时间】:2017-09-23 00:26:58
【问题描述】:
我正在尝试添加 SVG 图像(在本例中为比利时国旗)作为 SVG 路径(实际上是椭圆)的填充。悬停时,椭圆的填充必须变为红色。换句话说,填充 SVG 必须“淡出”。我尝试了一种使用 CSS 的方式,但 SVG 模式和过渡似乎都不起作用。我在 Chrome 和 Firefox 上试过。
svg ellipse {
fill: url(#img1);
transition: fill 400ms;
}
svg:hover ellipse {
fill: red;
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" version="1.1" height="480" width="640" viewBox="0 0 640 480">
<defs>
<pattern x="0" y="0" id="img1" height="480" width="640" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path d="M0 0h213.335v479.997H0z" />
<path fill="#ffd90c" d="M213.335 0H426.67v479.997H213.335z" />
<path fill="#f31830" d="M426.67 0h213.335v479.997H426.67z" />
</g>
</pattern>
</defs>
<rect fill="none" stroke="blue" x="1" y="1" width="640" height="480"/>
<ellipse stroke="black" stroke-width="5" cx="400" cy="200" rx="350" ry="150" />
</svg>
【问题讨论】:
-
我不确定您是否可以使用图像来执行此操作,但是使用初始化填充为白色而不是 url(#img1) 来执行此操作。 stackoverflow.com/questions/20012240/…
标签: css svg css-transitions