Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
cambiar el color del control deslizante redondo según el valor

Estoy tratando de dejar que el color del rango cambie de verde a rojo cuando las personas mueven el control deslizante de 100 a 0. Uso el control deslizante JS Round ( https://roundsliderui.com/document.html ).

MRE está aquí: https://codepen.io/chapkovski/pen/gORmrbR Pero se ve así:

 $("#slider1").roundSlider({ sliderType: "min-range", value: 80, // svgMode: true, valueChange: "changeColor", }); function componentToHex(c) { var hex = c.toString(16); return hex.length == 1 ? "0" + hex : hex; } function rgbToHex(r, g, b) { return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b); } var sliderObj = $("#slider1").data("roundSlider"); function changeColor(e) { const val = e.value * 2.55; sliderObj.rangeColor = rgbToHex(255 - val, val, 0); }

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En su demostración hay algunos problemas, por lo que es posible que deba corregir las siguientes cosas:

  1. Está configurando el valor de la propiedad de forma incorrecta. Para actualizar cualquier valor de propiedad dinámicamente, puede seguir cualquiera de las siguientes sintaxis:
 $("#slider1").roundSlider("option", "rangeColor", rgbToHex(255 - val, val, 0)); OR $("#slider1").roundSlider({"rangeColor": rgbToHex(255 - val, val, 0) }); OR sliderObj.option("rangeColor", rgbToHex(255 - val, val, 0));

https://roundsliderui.com/document.html#how-to-use-options

  1. En la lógica de generación del código de color, está haciendo algo como esto e.value * 2.55 , pero esto devolverá el valor flotante. Pero el código de color hexadecimal no aceptará el valor flotante. Así que haz que este valor sea redondo.
 Math.round(e.value * 2.55)
  1. Has comentado el svgMode: true , debería estar habilitado.

Y una sugerencia más, puede actualizar a la v1.6.1 para una mejor mejora.

Aquí está la DEMO modificada que funciona bien:

https://codepen.io/soundar24/pen/mdwWBzX

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda