简体   繁体   English

如何使代码正确生成颜色?

[英]How can I make the code generate the colors correctly?

I am creating a website for creating color palettes but I can't seem to solve a non-JavaScript error (probably html or CSS error) that I am facing.我正在创建一个用于创建调色板的网站,但我似乎无法解决我面临的非 JavaScript 错误(可能是 html 或 CSS 错误)。

 var c1 = document.getElementById('c1'); var c2 = document.getElementById('c2'); var c3 = document.getElementById('c3'); function rand(x) { return (Math.random() * x).toFixed(0); } function cc() { let y = rand(360); let z; if (rand(2) === 0) { z = 50; } else if (rand(1) === 1) { z = 120; } else { z = 170; } c1.style.backgroundColor = `hsl(${y}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c2.style.backgroundColor = `hsl(${(y+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c3.style.backgroundColor = `hsl(${(y+z+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; } cc();
 <button onclick='cc();'>Create Color Themes!</button> <div id='c1'>X</div> <div id='c2'>X</div> <div id='c3'>X</div>

Simple debugging will show you your problem.简单的调试会告诉你你的问题。

 var c1 = document.getElementById('c1'); var c2 = document.getElementById('c2'); var c3 = document.getElementById('c3'); function rand(x) { return (Math.random() * x).toFixed(0); } function cc() { let y = rand(360); let z; if (rand(2) === 0) { z = 50; } else if (rand(1) === 1) { z = 120; } else { z = 170; } console.log(`hsl(${y}deg, ${50+rand(50)}%, ${rand(25)+25}%)`) c1.style.backgroundColor = `hsl(${y}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c2.style.backgroundColor = `hsl(${(y+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c3.style.backgroundColor = `hsl(${(y+z+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; } cc();
 <button onclick='cc();'>Create Color Themes!</button> <div id='c1'>X</div> <div id='c2'>X</div> <div id='c3'>X</div>

You are returning a string.您正在返回一个字符串。 A string plus a number is a string.一个字符串加上一个数字就是一个字符串。 So you need your random code to return a number.所以你需要你的随机码来返回一个数字。

 var c1 = document.getElementById('c1'); var c2 = document.getElementById('c2'); var c3 = document.getElementById('c3'); function rand(x) { return Math.floor(Math.random() * x); } function cc() { let y = rand(360); let z; if (rand(2) === 0) { z = 50; } else if (rand(1) === 1) { z = 120; } else { z = 170; } c1.style.backgroundColor = `hsl(${y}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c2.style.backgroundColor = `hsl(${(y+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; c3.style.backgroundColor = `hsl(${(y+z+z)%360}deg, ${50+rand(50)}%, ${rand(25)+25}%)`; } cc();
 <button onclick='cc();'>Create Color Themes!</button> <div id='c1'>X</div> <div id='c2'>X</div> <div id='c3'>X</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM