Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript在HTML中放置SVG图像文件_Javascript_Css_Html_Svg - Fatal编程技术网

如何使用JavaScript在HTML中放置SVG图像文件

如何使用JavaScript在HTML中放置SVG图像文件,javascript,css,html,svg,Javascript,Css,Html,Svg,我有一个SVG图像文件,我想把它作为SVG放到HTML页面中。因此,我仍然利用高分辨率的放大/缩小功能 这是我的密码。我把SVG放在,SVG里面 代码运行正常,但浏览器中未显示SVG 1) 我怎样才能展示它? 2) 有没有办法将SVG作为SVG及其所有功能(我读了一些问题,但其中没有一个适合我) 这段HTML代码是有效的,但当我将其转换为JavaScript时,它就不起作用了 <svg id="svgimg" height="60" width="60" xmlns="http://www

我有一个SVG图像文件,我想把它作为SVG放到HTML页面中。因此,我仍然利用高分辨率的放大/缩小功能

这是我的密码。我把SVG放在,SVG里面

代码运行正常,但浏览器中未显示SVG

1) 我怎样才能展示它? 2) 有没有办法将SVG作为SVG及其所有功能(我读了一些问题,但其中没有一个适合我)

这段HTML代码是有效的,但当我将其转换为JavaScript时,它就不起作用了

<svg id="svgimg" height="60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  >

但是当我看到inspect时,它仍然是img标签而不是SVG??我希望它是SVG,这样我就可以更改矩形和线条的颜色。看起来您正在尝试动态创建SVG元素,然后将其显示在浏览器中

这是我过去做这件事的大致情况。此解决方案使用jQuery的函数:

    var svgdiv = document.createElement('div');
    var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
    svg.setAttribute('height', heightVar);
    svg.setAttribute('width', widthVar);
    //Add all your elements to the SVG
    svgdiv.appendChild(svg)
    //the following shows it in a pop-up window, but the write() and html() functions should be what you need.
    window.open().document.write(svgdiv.html());
更准确地说,如果您希望将SVG放置在文档中的特定点,例如div
myDiv


$('#myDiv').html(svgdiv.html())

在我们在评论中的对话之后,我想我可以给你一些帮助。你需要知道的一切都是关于SVG和开源的

假设您有icon.svg:

<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
  <path d="M2.47 0l-2.47 3h2v5h1v-5h2l-2.53-3z" transform="translate(1)" />
</svg>
因此,您将被SVG代码取代。 然后,你可以设计它

svg path {
  stroke-width: 1px;
  stroke: blue;
  fill: transparent;
}
这条线不对

var img = document.createElementNS(svg, 'image');
您拥有svg元素的名称空间权限

var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
所以你只需要对图像做同样的处理

var img = document.createElementNS('http://www.w3.org/2000/svg', 'image');
  • 使用参数:

  • 使用内联CSS:

    var s="url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><defs><pattern id='grid' width='"+(37+i)+".79527559055' height='37.79527559055' patternUnits='userSpaceOnUse' style='&#10;'><path d='M 50 0 L 0 0 0 40' fill='none' stroke='gray' stroke-width='1'/></pattern></defs><rect width='100%' height='100%' fill='url(#grid)'/></svg>\") no-repeat";  
    document.getElementsByTagName('HTML')[0].style.background=s; 
    
    var s=“url(\”数据:image/svg+xml;utf8,\”)无重复”;
    document.getElementsByTagName('HTML')[0].style.background=s;
    
    有人也提到了这一点,但使用encodeURI。。。


我不确定是否能回答这个问题,但这有帮助吗:?这真的很有用,也很有效。它将用一个…hello@Cohars替换您的,当我将图像作为HTML代码放置时,它与我一起工作。。但我想使用javascript,因为我想动态显示许多图像。你说的“图像”是指代码,或者是因为它不同。我真的不明白你到底想做什么。您想使用JS还是使用现有的.SVG文件生成SVG代码?>>>是的,嵌入sag作为img将使SVG在我理解时丢失该功能。是的,我想用JS或使用现有的.SVG文件>>生成SVG代码,因为我想稍后添加单击以显示在新窗口中+我可以更改颜色..谢谢帮助。。但是想知道更改将如何应用于sag图像,因为浏览器上没有任何更改。。副警长(高级警司);我试图附加SVG,但出现了以下错误:NotFoundError:DOM异常8:尝试在不存在节点的上下文中引用节点。SVG注入器正在处理这一问题,这就是我建议使用它的原因。它基本上会发出一个AJAX请求,以获取您在
data src
中编写的文件的SVG代码,然后它将删除并替换为SVG,并保留属性(id、class等)。您不需要自己将其附加到DOM中。也许你应该做一个JSFIDLE来看看你的错误是什么。。我将CSS:svg rect{fill:blue;}&&我将其添加到我的代码中:var SVGs=document.queryselectoral('svg');SVG喷射器(SVGs)但是矩形根本没有改变!!好的,您在控制台中是否有任何错误。当您检查SVG时会发生什么,它的大小是否正确,CSS是否应用于
SVG rect
,是否加载了CSS?也许你可以做
svg{width:100px;height:100px}
No现在我没有错误。。当我检查SVG时,什么都没有发生,CSS也没有应用到SVGthanks,但是我可以将我拥有的图像的源放在哪里(var link='SVGimage.SVG';)!!SVG元素没有此属性!!但问题是,我可以稍后将其作为SVG图像处理>>如果我以这种方式嵌入图像,我可以更改图像中线条的颜色吗?如果您是指SVG本身,是(SVG或图像标记属性),如果您是指SVG图像标记中的数据,例如,SVGImage.svg的内容,那么答案是否定的。svg图像包含许多线条和矩形)是的,我想稍后更改它们的颜色(更改所有矩形颜色)。。我从回答中了解到我可以这样做????
var img = document.createElementNS(svg, 'image');
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
var img = document.createElementNS('http://www.w3.org/2000/svg', 'image');
var s="url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><defs><pattern id='grid' width='"+(37+i)+".79527559055' height='37.79527559055' patternUnits='userSpaceOnUse' style='&#10;'><path d='M 50 0 L 0 0 0 40' fill='none' stroke='gray' stroke-width='1'/></pattern></defs><rect width='100%' height='100%' fill='url(#grid)'/></svg>\") no-repeat";  
document.getElementsByTagName('HTML')[0].style.background=s;