
- yhuxAvNbtxUM
0000-00-00 00:00:00
- 回帖
<svgid="s1"width="800"height="500"></svg><script>varfrag=document.createDocumentFragment();for(vari=0;i<30;i++){varc=document.createElementNS("http://www.w3.org/2000/svg","circle");c.setAttribute("r",rn(5,160));c.setAttribute("cx",rn(0,800));c.setAttribute("cy",rn(0,500));c.setAttribute("fill",rc(0,256));c.setAttribute("fill-opacity",Math.random());frag.appendChild(c);}s1.appendChild(frag);s1.onclick=function(e){clearInterval(t);vartarget=e.target;if(target.nodeName=="circle"){varr=target.getAttribute("r");varo=target.getAttribute("fill-opacity");vart=setInterval(function(){r*=1.05;o*=0.9;target.setAttribute("r",r);target.setAttribute("fill-opacity",o);if(o<0.01){clearInterval(t);s1.removeChild(target);}},10);}}functionrn(min,max){varn=Math.floor(Math.random()*(max-min)+min);returnn;}functionrc(min,max){varr=rn(min,max);varg=rn(min,max);varb=rn(min,max);return`rgb(${r},${g},${b})`;}</script>如上,我用vsg随机生成了30个圆,我希望点击每个圆,这个圆变大变透明直至从dom树删除;我的代码慢慢一个个点可以实现该功能,但是一旦快速双击,就会出现如下图的错误:我猜测应该是定时器写的有问题,但是自己解决不了;前端小白,JS基础太弱,恳请前辈教O(∩_∩)O~