Foros del Web » Programando para Internet » Javascript »

Cambiar valor de css con javascript

Estas en el tema de Cambiar valor de css con javascript en el foro de Javascript en Foros del Web. Hola, me gustaría si alguno de los genios del javascript y css me pudieran dar una mano... me estoy volviendo loco con algo que quiero ...
  #1 (permalink)  
Antiguo 09/07/2018, 13:53
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 4 meses
Puntos: 0
Cambiar valor de css con javascript

Hola, me gustaría si alguno de los genios del javascript y css me pudieran dar una mano... me estoy volviendo loco con algo que quiero hacer pero no logro, tengo un prototipo de unas listas ordenadas que pueden cambiar el orden de sus items arrastrando y soltando, todo funciona bien pero estoy en la etapa de dar mejor feedback al usuario final y quiero lograr que un valor de una clase cambie dinamicamente en base a un valor que tengo en una variable de javascript, mejor dicho a un valor que me da una función que cuenta cuantos items tengo seleccionados al presionar control o shift, si presiono estas teclas y voy haciendo click en los items de la lista estos cambian de color y puedo moverlos a la otra lista, esta funcion me da el valor de esa cantidad de items seleccionados y se usa para mostrar un budget con ese valor y yo tengo la idea de usarlo para tambien cambiar dinámicamente el alto del placeholder/dummy/hueco en donde se pueden soltar estos items. Si corren el ejemplo desde https://codepen.io/fermdp/pen/GGLvKw?editors=1001 van a entender rapidamente a que me refiero, al sellecionar y arrastrar se crea un "hueco" en donde soltar los items y este tiene un alto fijo dado por una clase, lo que quiero es poner el valor (la cantidad de items seleccionados) a multiplicar dicho valor en pixeles y así tener el hueco mas grande o mas chico en base a la cantidad de items seleccionados, pero no se como lograrlo. intente con innerHTML pero esto no puede cambiar directamente un valor de css. Les estaré muy agradecido si me pueden ayudar u orientar pues no doy con la solución!

Saludos desde Argentina!
__________________
:) Fernando Dichiera (:
[email protected]
  #2 (permalink)  
Antiguo 18/07/2018, 09:06
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: Cambiar valor de css con javascript

A ver, porque creo que no te he entendido bien. El valor de una clase CSS no se puede modificar en JavaScript, pero si puedes cambiar sus propiedades a través del atributo style.

Yo lo que haría es que cuando se selecciona un objeto, este almacenarlo en un array, luego recorrer el array e ir sumando las alturas de cada elemento seleccionado y aplicar esa altura al elemento

Código Javascript:
Ver original
  1. class MyApp {
  2.     constructor() {
  3.         this.els = {
  4.             destino: documento.getElementById( "caja-destino" )
  5.         };
  6.  
  7.         this.selecteds = [];
  8.     }
  9.  
  10.     add( el ) {
  11.         this.selecteds.push( el );
  12.  
  13.         this._setHeight();
  14.     }
  15.  
  16.     this.remove( el ) {
  17.          for(var i = 0; i < this.selecteds.length; i++ ) {
  18.              if( el == this.selected[ i ] ) {
  19.                  this.selecteds.slice( i, 1 );
  20.              }
  21.          }
  22.  
  23.          this._setHeight();
  24.     }
  25.  
  26.     _setHeight() {
  27.         var h = 0;
  28.         for(var i = 0; i < this.selecteds.length; i++ ) {
  29.             h += this.selecteds[ i ].offsetHeight;
  30.         }
  31.  
  32.         this.els.destino.style.height = h + "px";
  33.     }
  34. }

Así a modo de ejemplo creo que esto sirve, un método que añade elementos seleccionados, uno que quita elementos seleccionados y otro que ajusta la altura de la caja de destino en función de los elementos que haya seleccionado. Cuando selecciones un elemento llamas al método add() y cuando se deseleccion al método remover().

No sé si van por ahí los tiros que necesitas.
__________________
Diseño Web - Arisman Web

Etiquetas: css, css+dinamicos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:54.