【问题标题】:How can I change the color of an SVG image on hover? [duplicate]如何在悬停时更改 SVG 图像的颜色? [复制]
【发布时间】:2012-08-22 17:33:35
【问题描述】:

可能重复:
Changing SVG image color with javascript

当我将鼠标悬停在 SVG 图像上时,我想更改其填充。

现在我有一个从 Illustrator 导出到 SVG 的黑色问号。 我可以用 img 标签放在我的页面上,它显示得很好,但是我不知道如何更改代码中的颜色。

【问题讨论】:

  • 我对 SVG 不太熟悉,也许您可​​以更改悬停时的背景颜色?不久前我为一个任务做了这样的事情:bit.ly/Q1Irwv

标签: html css javascript svg


【解决方案1】:

如果你需要在 svg 中做悬停效果,你不应该使用 标签。而是使用

这是一个示例,显示了简单的填充悬停效果inside an svganother one(稍微复杂一点,使用过滤器在悬停时创建轮廓)。无论如何,它基本上是关于应用 :hover CSS 规则来设置填充颜色。

上面所有使用 svg 的方法的例子可以看到here

【讨论】:

    【解决方案2】:

    SVG 文件可以直接从 javascript 修改,即“图像”的属性可以从 DOM 中访问。

    从堆栈溢出看这篇帖子:modify stroke and fill of svg image with javascript

    重要的是要记住这样做,您不能将 svg 文件包含在通用 HTML img/> 标记中,而是使用 svg>.. ./svg> 如帖子所示。

    编辑:svg on w3schools

    我添加了指向 w3schools 的链接,以便您可以查看 svg 对象的更多属性

    玩得开心

    【讨论】:

    • w3schools 上的 svg 给出 404(未找到页面)。
    • 链接已更新
    【解决方案3】:

    如果您可以发布您的代码,也许我们可以为您解决问题。

    试试这个:http://tutorials.jenkov.com/svg/svg-and-css.html

    或者(不是 SVG 独有的),将这种类型的代码用于不同的图像:

    <img src="image1.svg"
    onmouseover="this.src='image2.svg'"
    onmouseout="this.src='image1.svg'">
    

    现场演示:http://jsfiddle.net/JNChw/

    【讨论】:

    • 图像替换是改变悬停填充颜色的一种非常低效的方法(对于 svg 情况)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2014-04-12
    • 2021-12-18
    • 1970-01-01
    • 2019-10-19
    • 2019-05-09
    • 2014-08-20
    相关资源
    最近更新 更多