如何使用JavaScript在SVG中创建属性?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用JavaScript在SVG中创建属性?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2522字,纯文字阅读大概需要4分钟。
内容图文
![如何使用JavaScript在SVG中创建属性?](/upload/InfoBanner/zyjiaocheng/748/f3e96f273cf747bcb043a802d1f3b37b.jpg)
我的应用程序中有一个脚本,它隐藏了具有特定ID值的SVG中的g元素,但这只适用于g元素具有visibility属性的情况.但是,我正在使用的SVG在g元素上没有可见性属性,而且我无法控制源.因此,我需要找到一种在加载父HTML页面时动态添加visibility属性的方法.
我希望脚本在< g id =“Callouts”>的子元素的所有g元素上创建visibility属性.例如,最终代码看起来像这样:
<g id="Callouts">
<g id="Callout1" visibility="visible">...</g>
<g id="Callout2" visibility="visible">...</g>
</g>
我已经查看了将属性添加到SVG结构但尚未找到任何内容的示例.在JavaScript方面,我也是一个完全新手也没有帮助.有谁知道如何做到这一点?
更新:我将Digital Plane建议的代码与我用来访问SVG文档的代码相结合.结果函数如下.这应该显示< g id =“Callouts”>下的每个g元素.但是,我在for循环中不断收到“不支持的对象”错误.
function displayOnload (svgName) {
var svgEmbed = document.embeds[svgName];
if (typeof svgEmbed.getSVGDocument != 'undefined') {
var svgDocument = svgEmbed.getSVGDocument();
var parentElement = svgDocument.getElementById('Callouts');
if (parentElement != null) {
var childElements = parentElement.getElementsByTagname('g');
for (var i=0; i < childElements.length; i++) {
childElements[i].setAttribute('visibility', 'visible');
}
}
}
}
请原谅我对JavaScript的无知,但我在这里做错了什么?
更新:这是我的HTML代码示例.
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:svg="http://www.w3.org/2000/svg">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Drop Bar assembly (2328775)</title>
<link rel="stylesheet" type="text/css" href="Content.css" />
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
function displayOnload (svgName) {
var svgEmbed = document.embeds[svgName];
if (typeof svgEmbed.getSVGDocument != 'undefined') {
var svgDocument = svgEmbed.getSVGDocument();
var parentElement = svgDocument.getElementById('Callouts');
var childElements = parentElement.getElementsByTagName('g');
for (var i=0; i < childElements.length; i++) {
childElements[i].setAttribute('visibility', 'hidden');
}
}
}
</script>
</head>
<body onl oad="displayOnload('SVG')">
...
</body>
</html>
解决方法:
您应该可以使用setAttribute,具有以下内容:
element.setAttribute("visibility", "visible");
如果您希望所有g元素都是< g id =“Callouts”>的子元素,请在文档加载时执行以下操作:
var element = document.getElementById("Callouts");
var elements = element.getElementsByTagName("g");
for(var i = 0; i < elements.length; i++)
elements[i].setAttribute("visibility", "visible");
内容总结
以上是互联网集市为您收集整理的如何使用JavaScript在SVG中创建属性?全部内容,希望文章能够帮你解决如何使用JavaScript在SVG中创建属性?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。