【问题标题】:I am looking for a JavaScript random color generator to output the color red 10% of the time我正在寻找一个 JavaScript 随机颜色生成器,以 10% 的时间输出红色
【发布时间】:2020-06-23 11:42:27
【问题描述】:

这就是我目前所拥有的,我将背景设置为纯色和一个 div,单击该 div 会生成随机颜色。我希望它由空格键生成,并且我希望它在 10% 的时间内输出红色。我是 JavaScript 的业余爱好者,但正在学习。

var r, g, b, cstring;

function colapply() {
   color();

   r = newcolor.slice(1, 3);
   g = newcolor.slice(3, 5);
   b = newcolor.slice(5, 7);
   r = parseInt(r, 16);
   g = parseInt(g, 16);
   b = parseInt(b, 16);

   cstring = "rgb(" + r + "," + g + "," + b + ")";
   $(".colorc").html("<" + "div class=" + "'" + "colorc1" + "'" + ">" + "<" + "/" + "div" + ">" + newcolor + "<span class='rgb'>" + cstring + "</span>");
   $("body").css({
      "background": newcolor
   });
   $(".colorc").css({
      "color": newcolor
   });

   $(".colorc1").css({
      "background": cstring
   });

}
var newcolor;

function color() {
   newcolor = '#' + (Math.random().toFixed(6).toString(16)).slice(2);;
   if (newcolor.length < 7) {
      color();
   }
}
$(".colorc").click(colapply);
colapply();

【问题讨论】:

标签: javascript colors


【解决方案1】:

尝试为红色引入一个特殊情况。

function color() {
   if (Math.random() < 0.1) { // 10% of the time
      newcolor = '#FF0000'
      return;
    }
   newcolor = '#' + (Math.random().toFixed(6).toString(16)).slice(2);;
   if (newcolor.length < 7) {
      color();
   }
}

【讨论】:

  • 如果我只想输出红色或绿色,并在 10% 的时间保持红色,该怎么办?
  • 想想你如何生成一个介于 0.0 和 1.0 之间的随机数。将生成的数字(在代码中或心理上)乘以 100,您可以将其视为 0-100 (%)。然后你有一个范围来根据你的规则划分这个范围(红色的 10% 意味着如果你的随机生成的数字小于 10,它应该返回红色,否则返回绿色)
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 2013-03-24
  • 1970-01-01
  • 2016-12-16
  • 2015-11-07
  • 2020-11-27
  • 1970-01-01
  • 2021-06-02
相关资源
最近更新 更多