将颜色更改为SVG ID

我在插画家中制作了猫的SVG图像。我已经命名了图层,所以我的猫眼睛名为“眼睛”。

将SVG导入开发人员窗口时,我可以看到层名称在那里

<g id="eyes">
  <path class="cls-1" d="M.25,766.38c2.52,9,16.26,23.83,35.15,39.06s3
  ...

现在通过javascript我想将颜色更改为眼睛。我怎么做?我研究了好几天都没找到答案。

HTML:

<object id="bild" data="a.svg" type="image/svg+xml"></object>

JS:

var catImage = document.getElementById( 'bild');
catImage.layerName.style="fill:red";

我知道这到处都是错误的,但是..我觉得像这样吗?

maquanying 回答:将颜色更改为SVG ID

<object><img>标记中导入的SVG不能直接由宿主页面的CSS或JavaScript设置样式。

但是,对于<object>,您可以通过contentDocument元素的object属性获得这种访问权限。

在您的情况下,应该是...

let cat = document.getElementById('bild').contentDocument;

但是,contentDocument属性只有在页面完全加载并呈现后才可用。因此,您需要将代码放入加载事件处理程序中。

在您的情况下,那将是...

window.addEventListener("load",function() {
  let cat = document.getElementById('bild').contentDocument;
  let eyes = cat.getElementById('eyes');
  eyes.style.fill="red";
});
,

您可以在svg内添加一些样式

.layerclass{
    fill:red;
}

fill属性会更改svg的颜色。

本文链接:https://www.f2er.com/3156851.html

大家都在问