Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

118
Visualizações
Obtener una gama de colores a partir de un porcentaje

Lo que intento Extraigo de una API que obtiene un número entre 1 y 32. Intento convertir ese retorno en un determinado color de fondo, que va del verde al rojo, para bien y para mal, respectivamente. Básicamente, si el número que regresa es 32, el fondo se vuelve rojo brillante, mientras que si es 1, regresa verde brillante.

lo que he probado

Aquí está el Código actualmente.

 function colorChange(x) { let y = x.substring(0, x.length - 2); <<<----THIS IS TO TAKE THE NUMBER FROM 32ND TO JUST 32. let z = y / 2 return "#" + z+z+z } <div className="team-stat" style={{backgroundColor: colorChange(teamStats.stats[1].splits[0].stat.pts)}} > <h4>Points:</h4> <h1>{teamStats.stats[0].splits[0].stat.pts}</h1> <h3>Rank: {teamStats.stats[1].splits[0].stat.pts}</h3> </div>

Actualmente, en el código, estoy llamando a una API que da como resultado un resultado del 1 al 32. Ya eliminé los dos últimos caracteres, por lo que no se incluyen ni th ni nd. Me las arreglé para que devuelva básicamente un código hexadecimal de # 171717, pero el rango actual va de negro a un poco menos negro. Con los códigos hexadecimales convirtiéndose en letras, estoy un poco perplejo sobre cómo proceder. Cualquier ayuda es apreciada, y con gusto aclararé cualquier malentendido.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Utilice el modelo HSLA para el color de fondo. Luego cambie el primer parámetro (tono) según su valor de 1 a 32 multiplicado por 3,75 (120/32)

Aquí hay un ejemplo: https://codepen.io/akost/pen/ZEJWZVx

 <script> let list=''; for(let i = 1; i <= 32; i++) { let h = i*3.75; // we need hue values from 0 to 120 let row = `<div style='background:hsla(${h}, 100%, 50%, 1)'></div>`; list += row; } document.getElementById('foo').innerHTML = list; </script> <style> #foo div { width:100px; height:10px; border-bottom:solid 1px #fff; } </style> <div id="foo"></div>
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar rgb() para el color de fondo y luego escalar los valores rojo y verde según el valor x . Suponiendo que 32 es el más verde, algo como:

 function colorChange(x) { ... const maxPossibleScore = 32; const individualPointValue = 255 / maxPossibleScore; return { red: 255 - individualPointValue * x, green: individualPointValue * x } } const colors = colorChange(10); style={{backgroundColor: `rgb(${colors.red}, ${colors.green}, 0)`}}

Esto no responde a su pregunta directamente usando hexadecimal, pero en teoría podría colocar una traducción de decimal a hexadecimal y obtener el resultado hexadecimal que está buscando.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda