Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema Basico - jQuery+CSS

Estas en el tema de Problema Basico - jQuery+CSS en el foro de Jquery en Foros del Web. Buenas a todos soy nuevo por aqui. Estuve buscando este tema pero no lo encontre asi que lo publico. Estoy intentando hacer unas animaciones sobre ...
  #1 (permalink)  
Antiguo 11/03/2015, 08:45
 
Fecha de Ingreso: marzo-2015
Ubicación: Ciudad del Este
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Problema Basico - jQuery+CSS

Buenas a todos soy nuevo por aqui.
Estuve buscando este tema pero no lo encontre asi que lo publico.
Estoy intentando hacer unas animaciones sobre unas secciones de mi pagina con CSS y jQuery.

Publico aqui el codigo de ejemplo

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<script src="js/jquery-1.11.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".contenedor").mouseover(function(){
$(".grow").each(function(i){
$(this).css({
"transform": "scale(1.2)",
"opacity":"0.3",
});
});

});
$(".contenedor").mouseleave(function(){
$(".grow").each(function(i){
$(this).css({
"transform": "scale(1)",
"opacity":"1",
});
});

});
});
</script>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.contenedor{
background: black;
display: block;
height: 211px;
margin: 0 auto;
position: relative;
overflow: hidden;
text-align: center;
width: 197px;

}
.grow { transition: all .5s ease-in-out; }
.texto{
color: #ffae00;
font-size: 40px;
font-weight: lighter;
position: absolute;
top: 40%;
width: 100%;
z-index: 10;
}
</style>
</head>
<body>
<div class="contenedor">
<p class="texto">NATURALEZA</p>
<img class="grow" src="img/01.jpg">
</div>
</body>
</html>

Lo que hace es que aumenta el tamaño de la imagen con una transicion dentro de un div que tiene overflow:hidden.

Mi problema es que cuando duplico el div contenedor el efecto no se aplica solo soble el elemento $(this) si no sobre todos los demas divs creados.

Espero alguien pueda sugerirme alguna cosa.
Desde ya gracias.
  #2 (permalink)  
Antiguo 11/03/2015, 10:42
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 meses
Puntos: 208
Respuesta: Problema Basico - jQuery+CSS

Si duplicas el elemento, intuyo que el duplicado tiene la misma clase que el original.. a menos que cambies esa clase o llames el elemento en jquery mediante un identificador en vez de clase, te va a seguir pasando eso.
  #3 (permalink)  
Antiguo 11/03/2015, 11:00
 
Fecha de Ingreso: marzo-2015
Ubicación: Ciudad del Este
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema Basico - jQuery+CSS

Gracias por la respuesta Fede.
Justamente estoy tratando de no utilizar identificadores ya que la funcion es la misma queria reaprovecharla.

Normalmente cuando el efecto esta aplicado en el mismo objeto no suelo tener problemas al usar $(this) pero en este caso estoy queriendo activarla por medio del identificador "contenedor" y no me esta funcionando bien.
Seguire buscando una solución.
  #4 (permalink)  
Antiguo 11/03/2015, 12:08
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 meses
Puntos: 208
Respuesta: Problema Basico - jQuery+CSS

Código Javascript:
Ver original
  1. $(".contenedor").mouseover(function(){
  2. $(".grow").each(function(i){
  3. $(this).css({
  4. "transform": "scale(1.2)",
  5. "opacity":"1",
  6. });
  7. });

Lo que yo veo ahí es que son todas clases, no hay ningún identificador.. Si duplicas el div y le dejas la misma clase también te va a afectar a ese elemento.

Leída, la función dice:

Para cada ".grow" que este dentro de un elemento con la clase ".contenedor", cuando el cursor se posicione sobre este ultimo, aplica los siguientes estilos. Así que al duplicar el elemento también va a recibir la función porque también tiene la clase "contenedor".

No tiene nada de malo usar id's, y es útil en determinadas situaciones.. Si necesitas reutilizar la funcion, entonces quitale la clase al nuevo elemento.

En el caso de que la clase "contenedor" contenga los estilos en CSS para la caja.. podes asignarles a cada div una segunda clase que va a ser la que utilice Jquery.. así le asignarías dicha clase solo a los elementos que querés que afecte la función.

Por ejemplo..

.contenedor tiene los estilos para las cajas.
.agrandar es el que vas a llamar con la función.

Entonces el html quedaria asi:

Código HTML:
Ver original
  1. <div class="contenedor agrandar">
  2. <p class="texto">NATURALEZA</p>
  3. <img class="grow" src="img/01.jpg">
  4. </div>
  5. <div class="contenedor">
  6. <p class="texto">OTROTEXTO</p>
  7. <img class="grow" src="img/otraimagen.jpg">
  8. </div>
  9. </body>

Y el script:

Código Javascript:
Ver original
  1. $(".agrandar").mouseover(function(){
  2. $(".grow").each(function(i){
  3. $(this).css({
  4. "transform": "scale(1.2)",
  5. "opacity":"1",
  6. });
  7. });


Así la función solo se aplicaría a los elementos con la clase "agrandar" y podes reutilizar la función para todos los elementos que necesites solamente asignándoles la clase "agrandar", por mas que ésta no tenga asignados estilos CSS.

No se en que contexto estarás aplicando este código, quizás viendo algún ejemplo online te puedo ayudar mejor.. Con lo que entendí, esto es lo único que puedo aportar, disculpame si no es lo que necesitas.

Aún así, espero haberme explicado bien y que te sirva!

Saludoss
  #5 (permalink)  
Antiguo 11/03/2015, 17:56
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 meses
Puntos: 208
Respuesta: Problema Basico - jQuery+CSS

Si es esto lo que queres hacer:

http://codepen.io/anon/pen/PwyjgW

No te va a quedar otra opción que usar id's..
  #6 (permalink)  
Antiguo 12/03/2015, 08:47
 
Fecha de Ingreso: marzo-2015
Ubicación: Ciudad del Este
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema Basico - jQuery+CSS

Es exactamente eso..
Gracias por la ayuda Fede ha sido de gran utilidad.
Un gran saludo.
  #7 (permalink)  
Antiguo 13/03/2015, 09:43
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Problema Basico - jQuery+CSS

Recuerda marcar el tema como solucionado. Saludos

Etiquetas: basico
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 21:32.