我甚至可以在广场上添加监听,点击时提醒“这是我的名字”。使用JavaScript与SVG元素进行交互
我的问题是: 而不是仅仅作出警告,我需要执行animate
功能,使每个项目启动后点击它
var NS="http://www.w3.org/2000/svg";
var SVG=function(h,w){
var svg=document.createElementNS(NS,"svg");
svg.width=w;
svg.height=h;
return svg;
}
var svg=SVG(1200,1500);
document.body.appendChild(svg);
var rect=function(x,y,h,w,fill,name){
var SVGObj= document.createElementNS(NS,"rect");
SVGObj.x.baseVal.value=x;
SVGObj.y.baseVal.value=y;
SVGObj.width.baseVal.value=w;
SVGObj.height.baseVal.value=h;
SVGObj.setAttribute("height",h);
SVGObj.style.fill=fill;
SVGObj["my-name"] = name;
SVGObj.name = name;
return SVGObj;
}
for (var i = 0; i < 100; i++) {
var x = Math.random() * 500,
y = Math.random() * 300;
var r= rect(x,y,10,10,'#'+Math.round(0xffffff * Math.random()).toString(16),'this is my name');
r.addEventListener('click',()=>alert(r.name)); // or r["my-name"]
svg.appendChild(r);
}
var animate=function(obj){
obj.x.baseVal.value+=1;
obj.y.baseVal.value+=1;
}
我支持你重组模型的决定,因为对于面向对象的编程来说,这是一个更好的实践。如果您发现任何有用的答案,请立即给他们提供帮助!祝你今天愉快! :) –