使用 createElementNS 创建的元素不显示
Element created with createElementNS doesn't show
每次单击按钮时,我都试图创建一个带有 <svg>
标签和 JavaScript 的新 <img>
。当我在控制台 firebug 中看到结果时,它工作正常,但屏幕上没有任何显示。
我想要的是每次单击按钮时在最后一张图像之后显示图像 <svg>
。
提前致谢。
var svgNS = "http://www.w3.org/2000/svg";
mybtn.addEventListener("click", createCircleSVG);
function createCircleSVG(){
var d = document.createElement('svg');
d.setAttribute('id','mySVG');
document.getElementById("svgContainer").appendChild(d);
createCircle();
}
function createCircle(){
var myCircle = document.createElementNS(svgNS,"circle"); //to create a circle."
myCircle.setAttributeNS(null,"id","mycircle" + opCounter++);
myCircle.setAttributeNS(null,"cx",25);
myCircle.setAttributeNS(null,"cy",25);
myCircle.setAttributeNS(null,"r",100);
myCircle.setAttributeNS(null,"fill","black");
myCircle.setAttributeNS(null,"stroke","blue");
document.getElementById("mySVG").appendChild(myCircle);
}
您需要使用 createElementNS 在 SVG 命名空间中创建 svg 元素(就像您已经为圆所做的那样)例如
var d = document.createElementNS(svgNS, 'svg');
给 SVG 元素指定宽度和高度也是必要的
d.setAttribute("width", "100%");
d.setAttribute("height", "100%");
请注意,这里我们可以使用 setAttribute,因为属性位于 null 命名空间中。如果需要,您也可以转换 circle setAttributeNS 调用。
创建 SVG:
var svg = document.createElementNS(ns, 'svg');
第一个函数:
function createSVG() { ... }
第二个函数:
function createSVGCircle() { createSVG() ... }
或分开:
createSVG();
createSVGCircle();
每次单击按钮时,我都试图创建一个带有 <svg>
标签和 JavaScript 的新 <img>
。当我在控制台 firebug 中看到结果时,它工作正常,但屏幕上没有任何显示。
我想要的是每次单击按钮时在最后一张图像之后显示图像 <svg>
。
提前致谢。
var svgNS = "http://www.w3.org/2000/svg";
mybtn.addEventListener("click", createCircleSVG);
function createCircleSVG(){
var d = document.createElement('svg');
d.setAttribute('id','mySVG');
document.getElementById("svgContainer").appendChild(d);
createCircle();
}
function createCircle(){
var myCircle = document.createElementNS(svgNS,"circle"); //to create a circle."
myCircle.setAttributeNS(null,"id","mycircle" + opCounter++);
myCircle.setAttributeNS(null,"cx",25);
myCircle.setAttributeNS(null,"cy",25);
myCircle.setAttributeNS(null,"r",100);
myCircle.setAttributeNS(null,"fill","black");
myCircle.setAttributeNS(null,"stroke","blue");
document.getElementById("mySVG").appendChild(myCircle);
}
您需要使用 createElementNS 在 SVG 命名空间中创建 svg 元素(就像您已经为圆所做的那样)例如
var d = document.createElementNS(svgNS, 'svg');
给 SVG 元素指定宽度和高度也是必要的
d.setAttribute("width", "100%");
d.setAttribute("height", "100%");
请注意,这里我们可以使用 setAttribute,因为属性位于 null 命名空间中。如果需要,您也可以转换 circle setAttributeNS 调用。
创建 SVG:
var svg = document.createElementNS(ns, 'svg');
第一个函数:
function createSVG() { ... }
第二个函数:
function createSVGCircle() { createSVG() ... }
或分开:
createSVG();
createSVGCircle();