-- 作者:pdadn
-- 发布时间:1/12/2007 3:08:00 PM
-- 关于鼠标放在rect上触发的事件,总在闪动,请教
我在用svg画图的时间,希望鼠标在rect上时,就显示一个信息,鼠标移开,就把显示的信息摸掉,但是,发现,不行,鼠标点在rect上的时,显示的信息不停的闪动。 大家有什么好的方法,实现鼠标放在RECT上时,显示一个信息,并且信息显示不闪? rect.setAttribute("onmouseout","cancelShowSysDetailInfo(evt)"); function cancelShowSysDetailInfo(evt){ clearData("info"); } function clearData(obj){ var gg=dlist_svgDocument.getElementById(obj); var ind=gg.childNodes.length; while(gg.hasChildNodes) { gg.removeChild(gg.firstChild); } } 这个是移开的代码, rect.setAttribute("onmousemove","showSysDetailInfo(evt)"); function showSysDetailInfo(evt){ var node = evt.getTarget(); var id = node.getAttribute("id"); var Xcoordinate =evt.getClientX(); var Ycoordinate =evt.getClientY()-15; var rectwidth=200; var rectheight=50; createRect(Xcoordinate,Ycoordinate,rectwidth,rectheight,id); } //paint info rect function createRect(x,y,width,height,infostr){ var displayDiv=dlist_svgDocument.createElement("rect"); var ginfo=dlist_svgDocument.getElementById("info"); displayDiv.setAttribute("x",x); displayDiv.setAttribute("y",y); displayDiv.setAttribute("width",width); displayDiv.setAttribute("height",height); displayDiv.setAttribute("stroke","#81CEED"); displayDiv.setAttribute("stroke-width","1"); displayDiv.setAttribute("fill","none"); displayDiv.setAttribute("id","rect_"+infostr); ginfo.appendChild(displayDiv); var did=infostr.split(",")[2]; var dip=infostr.split(",")[3]; var dname=infostr.split(",")[4]; var status=infostr.split(",")[1]; paintText2(x,y,status,did,dip,dname,"info"); } function paintText2(x,y,status,did,dip,dname,ginfo){ var gginfo=dlist_svgDocument.getElementById(ginfo); if(status==0){ var x1=Number(x)+10; var y1=Number(y)+10; infoCreateText(x1,y1,"设备名:",gginfo); }else{ var x1=Number(x)+10; var y1=Number(y)+10; infoCreateText(x1,y1,"设备名:",gginfo); } } 这个是鼠标放在rect上的代码
|