Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在循环中更改SVG填充_Javascript_Svg - Fatal编程技术网

Javascript 在循环中更改SVG填充

Javascript 在循环中更改SVG填充,javascript,svg,Javascript,Svg,我有一个简单的SVG插图,有没有办法不断改变它的颜色?像一个不停循环的随机颜色变化 这是我的svg <svg width="533" height="499" viewBox="0 0 533 499" fill="none" xmlns="http://www.w3.org/2000/svg"> 选择元素并递归调用一个函数,该函数设置要使用随机十六进制重新调用的SVG元素的填充属性 const reclor=元素=>{ 常量randomColor=+Math.floorMat

我有一个简单的SVG插图,有没有办法不断改变它的颜色?像一个不停循环的随机颜色变化

这是我的svg

<svg width="533" height="499" viewBox="0 0 533 499" fill="none" xmlns="http://www.w3.org/2000/svg">

选择元素并递归调用一个函数,该函数设置要使用随机十六进制重新调用的SVG元素的填充属性

const reclor=元素=>{ 常量randomColor=+Math.floorMath.random*16777215.toString 16 circle.setAttribute'fill',随机颜色 setTimeout=>RecolElement,600 } 再记录。查询选择器“循环” svg圆{ 过渡:填充。5s线性; } 填补空缺是行不通的。这是因为它的元素。你可以改变它的背景

随机函数{ var o=Math.round,r=Math.random,s=255; 返回'rgba'+或*s+'、'+或*s+'、'+或*s+'、'+r.toFixed1+; } 函数变色{ document.querySelector'svg'.style.background=random\u rgba; } setIntervalchangeColor,200;
我将这样做:我使用颜色hsl进行填充,并使用requestAnimationFrame设置颜色色调的动画。我希望有帮助

设p1=document.querySelectorAllpath[0]; 设p2=document.querySelectorAllpath[1] 设h=0; 函数变色{ window.requestAnimationFramechangeColor; h+=0.5; h2=210+h; p1.setAttributesNull,fill,`hsl${~~h},100%,50%`; p2.setAttributesNull,fill,`hsl${~~h2},100%,50%`; } 变色
抱歉,尼克,如果你不介意的话,我还有一个问题,我可以让颜色之间的过渡更平滑吗?@tasteoflifing你可以在填充上添加CSS过渡。我已经编辑了答案。感谢nick,很抱歉,刚才尝试学习的问题太多了,有时圆圈会消失并返回,这可能是函数生成的色调数量有限?@tasteoflifeving我不知道为什么会发生这种情况,但请随意使用它作为学习的出发点:快乐的bug搜索。这也很好,我正在研究代码非常感谢你花了这么多时间来解决这个问题,我能加快一点吗?