Foros del Web » Programando para Internet » Javascript »

Problema con onmouseover y getElementById

Estas en el tema de Problema con onmouseover y getElementById en el foro de Javascript en Foros del Web. Hola, a ver si alguien puede ayudarme... Tengo que hacer que al pasar el raton por encima de un div, la imagen que incluye el ...
  #1 (permalink)  
Antiguo 25/05/2015, 13:58
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Problema con onmouseover y getElementById

Hola,

a ver si alguien puede ayudarme...

Tengo que hacer que al pasar el raton por encima de un div, la imagen que incluye el div haga un efecto de zoom. El problema es que todas las imagenes de la página tienen la id "producto", o sea que tendría que decirle de alguna manera que el onmouseover sólo afecte a la imagen que contiene ese div.

Además, no puedo utilizar clases.

He probado lo siguiente, pero no funciona:


---------

<div onmouseover="this.getElementById('producto').style .transform='scale(1.5)';
this.getElementById('producto').style.transition=' 0.2s ease-in'; "

onmouseout="this.getElementById('producto').style. transform='scale(1)';
this.getElementById('producto').style.transition=' 0.2s ease-out'; " >

---------


Si alguien me puede ayudar estaré muy agradecido.

Gracias.
  #2 (permalink)  
Antiguo 25/05/2015, 14:56
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con onmouseover y getElementById

Ojo, esto va en el foro de JavaScript.

Yo lo haría con Jquery, ya que las webs que hago incluyen mucho jquery no hay problema, pero algunos opinan que incluir Jquery para una sola función es mucho.

Igual te dejo un ejemplo con Jquery:

Supongamos que este es tu html:
Código HTML:
Ver original
  1. <div class="contenedor">
  2.     <img src="imagen_aqui.jpg" />
  3. </div>
Y este sera tu css:
Código CSS:
Ver original
  1. .contenedor {
  2.     overflow: hidden;
  3.     width: 300px;
  4.     height: 250px;
  5. }
  6.  
  7. .contenedor img {  
  8.     width: 300px;
  9.     height: 250px;
  10.     transition: 0.2s ease-out;
  11. }
Este seria tu Jquery:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('.contenedor').mouseenter(function(){
  3.         $(this).children().css("transform", "scale(1.5)");
  4.     });
  5.     $('.contenedor').mouseleave(function(){
  6.         $(this).children().css("transform", "scale(1)");
  7.     });
  8. });

Un ejemplo en funcionamiento: http://jsfiddle.net/stutv0ja/4/.

Saludos!
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #3 (permalink)  
Antiguo 25/05/2015, 15:52
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Problema con onmouseover y getElementById

Muchas gracias,

y cómo se podría hacer sin jquery?

es que creo que lo que falla en mi código es el "this" porque si lo hago con "document" funciona pero no quiero que afecte a todas las imagenes del documento, ya que todas tienen la misma id...
  #4 (permalink)  
Antiguo 25/05/2015, 19:13
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 9 años, 5 meses
Puntos: 91
Respuesta: Problema con onmouseover y getElementById

basta con CSS, nomas pon este selector y elige el numero del div que quieres hacerle ZOOM ;) ahi te dejo un ejemplo:

Código Selector:
Código CSS:
Ver original
  1. #producto:nth-child(3):hover {
  2. Aquí va tu código para el Zoom
  3. }

Demo CODEPEN:
http://codepen.io/AngelKrak/pen/eNBgzV
  #5 (permalink)  
Antiguo 25/05/2015, 22:36
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 con onmouseover y getElementById

Por empezar, los identificadores son únicos, y qué es eso de que no podes usar clases? De cualquier manera si solo podes usar id's, deberías poner uno diferente para cada div.

Como dijo AngelKrak, se puede hacer solo con CSS, pero yo modificaría un poco ese código.

Código HTML:
Ver original
  1. <div class="producto">
  2.   <img src="http://s18.postimg.org/il7hbk7i1/image.png" alt="" />
  3. </div>
  4. <div class="producto">
  5.   <img src="http://s18.postimg.org/4st2fxgqh/image.png" alt="" />
  6. </div>
  7. <div class="producto">
  8.   <img src="http://s18.postimg.org/sxtrxn115/image.png" alt="" />
  9. </div>
  10. <div class="producto">
  11.   <img src="http://s18.postimg.org/5xn4lb37d/image.png" alt="" />
  12. </div>

Código CSS:
Ver original
  1. .producto{
  2.   display: inline-block;
  3.   margin: 2em;
  4. }
  5.  
  6. img{
  7.   -webkit-transition: all 1s ease;
  8.     -moz-transition: all 1s ease;
  9.     -ms-transition: all 1s ease;
  10.     -o-transition: all 1s ease;
  11.     transition: all 1s ease;
  12. }
  13.  
  14. .producto:hover > img{
  15.     -webkit-transform:scale(1.25);
  16.     -moz-transform:scale(1.25);
  17.     -ms-transform:scale(1.25);
  18.     -o-transform:scale(1.25);
  19.      transform:scale(1.25);
  20. }

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

Esta aplicado a los divs con clase producto.. de nuevo, supongamos que no podes hacerlo con clases, vas a tener que agregar un id diferente a cada div y los estilos aplicados a .producto:hover > img se los vas a tener que aplicar a cada identificador.. #producto1:hover > img, #producto2:hover > img, #producto3:hover > img, etc, etc..

Y obviamente hay estilos aplicados a "img".. es solo para el ejemplo, porque no hay mas imagenes, en tu caso para que solo afecte a las imagenes dentro de producto deberias aplicar esos estilos a .producto > img, no es necesario el simbolo ">" si solo hay una imagen dentro del div o si queres aplicarlo a tooodas las imagenes dentro de ".producto".

Saludos
  #6 (permalink)  
Antiguo 26/05/2015, 11:12
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con onmouseover y getElementById

Xd No sé porque, pero por un momento al estar hablando de Js, me olvide que existía css, siento como que por un segundo recomendé usar flash en lugar de htlm5 XDD.
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.

Etiquetas: getelementbyid, html, onmouseover, página
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 23:51.