为了账号安全,请及时绑定邮箱和手机立即绑定

如何将随机数值放入 svg“fill”属性的“rgb()”中?

如何将随机数值放入 svg“fill”属性的“rgb()”中?

慕标5832272 2023-10-10 10:30:25
我的网站上有一个svg元素,我想对其进行动画处理,以便它从随机颜色值更改为另一个随机颜色值。我现在拥有的看起来像这样:<?xml version="1.0" standalone="no"?><svg width="8cm" height="3cm" viewBox="0 0 800 300" xmlns="http://www.w3.org/2000/svg">  <desc>Example anim01 - demonstrate animation elements</desc>  <rect x="1" y="1" width="900" height="400"        fill="none" stroke="none" stroke-width="2" />  <!-- The following illustrates the use of the 'animate' element        to animate a rectangles x, y, and width attributes so that        the rectangle grows to ultimately fill the viewport. -->  <rect id="RectElement" x="300" y="100" width="300" height="100"        fill="rgb(0,255,0)"  >    <animate attributeName="fill" begin="0" dur="1.3"    fill="remove" from="rgb(0,255,0)" to="rgb(255,0,0)" repeatCount="indefinite"/>    <animate attributeName="x" begin="0s" dur="1.3s"             fill="freeze" from="300" to="0" repeatCount="indefinite"/>    <animate attributeName="y" begin="0s" dur="1.3s"             fill="freeze" from="100" to="0" repeatCount="indefinite"/>    <animate attributeName="width" begin="0s" dur="1.3s"             fill="freeze" from="300" to="800" repeatCount="indefinite"/>    <animate attributeName="height" begin="0s" dur="1.3s"             fill="freeze" from="100" to="300" repeatCount="indefinite"/>          </rect>  <!-- Set up a new user coordinate system so that        the text string's origin is at (0,0), allowing        rotation and scale relative to the new origin -->  <g transform="translate(100,100)" >    <!-- The following illustrates the use of the 'set', 'animateMotion',         'animate' and 'animateTransform' elements. The 'text' element         below starts off hidden (i.e., invisible). At 3 seconds, it:           * becomes visible           * continuously moves diagonally across the viewport           * changes color from blue to dark red           * rotates from -30 to zero degrees           * scales by a factor of three. -->但我想要的是为矩形分配一个随机颜色值(类似于“rgb(随机#,随机#,随机#)”)。我该如何做才能确保每种颜色都是可能的结果?
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

let refreshRate = 1300;


function rand(max){

  return Math.floor(Math.random() * (max+1));

};


setInterval(function(){


document.getElementById("RectElement").setAttribute("fill","rgb("+rand(255)+", "+rand(255)+", "+rand(255)+")");


},refreshRate);


查看完整回答
反对 回复 2023-10-10
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信