当我点击一个按钮(我最初需要它加载颜色)时,我试图在我的SVG中去饱和链接的图像。我如何去饱和SVG中链接的图像?
我试着这样做:
$("#greyOut").click (function() {
$("#image1").css("filter", "grayscale(100%)");
});
我也试着这样做:
$("#greyOut").click (function() {
$("#image1").toggleClass("desaturate");
});
.desaturate{
filter: grayscale(100%);
}
我的SVG代码如下所示:
<svg version="1.1" id="mySVG" viewBox="0 0 1036.1863 541.28723" height="152.76329mm" width="292.43481mm">
<defs id="defs1"/>
<g transform="matrix(1,0,0,1,5.3227865,-408.7683)" id="svgGroup" style="fill:none">
<image xlink:href="adamPNG.png" y="416.47034" x="-5.3228474" id="image1" preserveAspectRatio="none" height="533.58521" width="1029.7035" />
//I've a lot of paths here so I've cut them out for my question
<path id="path1"...style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
</path>
</g>
</svg>
我也试过打电话只是$("image")
而不是ID,但这也行不通。是否可以更改链接图像的CSS,或者我应该只将<image>
的xlink:href
属性设置为我的图像的去饱和版本?
更新
如果我这样做,它将正常工作:
$("#greyOut").click (function() {
$('image').attr('xlink:href', 'adamPNGgrey.png');
});
我还是喜欢用CSS来做到这一点,而不是在另一个图像链接,如果可能的话...
我不确定你可以切换CSS内部的类......也许属性但不是类。 - http://stackoverflow.com/questions/8638621/jquery-svg-why-cant-i-addclass –
你的代码适合我:https://jsfiddle.net/blonfu/aqdj01kn/2/ – blonfu
你JSFiddle代码不会为我工作:/当我点击按钮时没有任何反应......你使用什么浏览器? –