javascript – 渲染时不显示SVG元素的onload事件中绘制的点
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 渲染时不显示SVG元素的onload事件中绘制的点,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2252字,纯文字阅读大概需要4分钟。
内容图文
我正在使用Javascript绘制SVG网格.我已设法绘制轴,以及我的象限标签.但是我遇到了一个添加动态点的问题.
我正在尝试在SVG元素的onload事件中绘制点.使用Firebug时,我已经能够确认代表我的点的圆形元素被添加到SVG DOM中,并为位置,画笔描边等设置了正确的属性.
不幸的是,我的浏览器(Firefox 3)渲染的实际图像没有更新,以反映我添加了这些新DOM元素的事实!
以下是我用于将元素添加到正确DOM节点的代码:
function drawPoints()
{
var points = pointCollection.points;
var grid = SVGDoc.getElementById("gridGroup");
for(var i = 0 in points)
{
var x = points[i].x;
var y = points[i].y;
var label = points[i].event;
//<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>
var dot = SVGDoc.createElement("circle");
dot.setAttribute("cx", x);
dot.setAttribute("cy", y);
dot.setAttribute("r", 15);
dot.setAttribute("stroke", "red");
dot.setAttribute("stroke-width", "2");
dot.setAttribute("fill", "black");
grid.appendChild(dot);
}
}
之后的Firefox的Firebug调试扩展所示的SVG结构是:
<svg width="800" height="800" version="1.1" xmlns="http://www.w3.org/2000/svg" onl oad="init(evt); drawAxis(); drawPoints()">
<g id="gridGroup" stroke="green">
<line id="xAxis" x1="0" x2="800" y1="400" y2="400" stroke-width="2"/>
<line id="yAxis" x1="400" x2="400" y1="0" y2="800" stroke-width="2"/>
<text id="importantLabel" x="155" y="20" font-family="Verdana" font-size="18" fill="blue" onclick="drawPoints()">Important</text>
<text id="notImportantLabel" x="555" y="20" font-family="Verdana" font-size="18" fill="blue">Not-Important</text>
<text id="urgentLabel" x="20" y="200" font-family="Verdana" font-size="18" fill="blue" transform="rotate(-90, 20, 200)">Urgent</text>
<text id="notUrgentLabel" x="20" y="600" font-family="Verdana" font-size="18" fill="blue" transform="rotate(-90, 20, 600)">Not-Urgent</text>
<circle cx="30" cy="30" r="15" stroke="red" stroke-width="2" fill="black"/>
<circle cx="600" cy="600" r="15" stroke="red" stroke-width="2" fill="black"/>
<circle cx="400" cy="400" r="15" stroke="red" stroke-width="2" fill="black"/>
</g>
</svg>
任何帮助将不胜感激,我是一个完整的SVG新手!
解决方法:
为了动态创建SVG元素,您必须将createElementNS方法与适当的命名空间一起使用,例如
var dot = SVGDoc.createElementNS("http://www.w3.org/2000/svg", "circle");
有关详细信息,请参阅tutorials by Kevin Lindsay,尤其是here.
内容总结
以上是互联网集市为您收集整理的javascript – 渲染时不显示SVG元素的onload事件中绘制的点全部内容,希望文章能够帮你解决javascript – 渲染时不显示SVG元素的onload事件中绘制的点所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。