Foros del Web » Programando para Internet » Javascript »

RollOver con cambio de imagenes

Estas en el tema de RollOver con cambio de imagenes en el foro de Javascript en Foros del Web. Hola! Que tal? Bueno escribo esto porque mi idea era la de hacer un rollOver sencillo (muuy sencillo) a base de cambio de imagenes para ...
  #1 (permalink)  
Antiguo 06/03/2011, 08:14
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
RollOver con cambio de imagenes

Hola! Que tal? Bueno escribo esto porque mi idea era la de hacer un rollOver sencillo (muuy sencillo) a base de cambio de imagenes para imitar un boton flash que tenia. Ahora la pregunta es la siguiente.. yo encontre esto en la web

<script type="javascript"
RollOverImg = new Image()
RollOverImg.src = "img1.png"
</script>

Luego al boton darle en el href

onMouseOver="RollOverImg.src = "img2.png"
onMouseOut="RollOverImg.src = "img1.png"

Bien.. eso seria un pseudocodigo de la idea de lo que quiero hacer (y si fuese asi anda xD)

Ahora.. yo tengo una tabla en MySQL que tiene almacenadas las rutas de las imagenes estas (img1.png e img2.png en este caso)

Me gustaria saber si se puede hacer algo como

onMouseOver="RollOverImg.src = "<?php echo $ruta2; ?>"
onMouseOut="RollOverImg.src = "<?php echo $ruta1; ?>"

Lo intente.. pero no se como hacer para definir la primera ruta que esta en el head dentro de las tags <script></script>

Espero se haya entendido y desde ya muchisimas gracias a todos!
  #2 (permalink)  
Antiguo 06/03/2011, 09:18
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: RollOver con cambio de imagenes

creo que te conviene mas hacer un rollover usando sprites y olvidar usar bd y javascript para eso
  #3 (permalink)  
Antiguo 06/03/2011, 09:39
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: RollOver con cambio de imagenes

Hola Isabelm, gracias por responder! Esa solucion seria apropiada si yo supiese las rutas de las imagenes, o el lugar de donde cortalas.. pero no tengo esos datos hasta cargar la web :S

habra alguna chance de adaptarlo? saludos!


Otra cosa que me olvidaba... no todas las imagenes tienen el mismo tamaño!! Eso me generaría un pequeño inconveniente con los sprites.. deberia guardar en mis tablas el lugar del sprite donde cortar. Y seria molesto actualizarlas
  #4 (permalink)  
Antiguo 06/03/2011, 13:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: RollOver con cambio de imagenes

Cita:
Iniciado por Megcapkill Ver Mensaje
Hola Isabelm, gracias por responder! Esa solucion seria apropiada si yo supiese las rutas de las imagenes, o el lugar de donde cortalas.. pero no tengo esos datos hasta cargar la web :S

habra alguna chance de adaptarlo? saludos!


Otra cosa que me olvidaba... no todas las imagenes tienen el mismo tamaño!! Eso me generaría un pequeño inconveniente con los sprites.. deberia guardar en mis tablas el lugar del sprite donde cortar. Y seria molesto actualizarlas
hasta este momento sólo habías hablado de dos imagenes y que conocías sus rutas.
esto debe funcionar
Cita:
onMouseOver="RollOverImg.src = "<?php echo $ruta2; ?>"
onMouseOut="RollOverImg.src = "<?php echo $ruta1; ?>"
Cita:
Lo intente.. pero no se como hacer para definir la primera ruta que esta en el head dentro de las tags <script></script>
puedes hacerlo igual que en el html o puedes usar php en un archivo js
  #5 (permalink)  
Antiguo 06/03/2011, 18:48
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: RollOver con cambio de imagenes

Hola Isa.. mmm creo que nos estabamos entendiendo mal jeje. Te cuento bien el entorno de todo.

Tengo secciones cargadas en una base de datos. Tengo un codigo php que me levanta los datos de la BD y con un while genero toda la barra, sin importar la cantidad de botones que haya..

Basicamente, yo querría poder hacer ese boton de cambio de imagenes en el cual yo tengo en cada fila de la BD seccion dos campos, uno con la ruta de la apariencia normal y otro con el rollover..

Puse la consulta aca porque yo habia hecho lo que escribi arriba, pero cuando se al momento de codificar la ruta de la imagen, en este caso, la ruta esta en la BD..

No se si me explique bien esta vez :S

Saludos y gracias!! ^.^
  #6 (permalink)  
Antiguo 07/03/2011, 00:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: RollOver con cambio de imagenes

Hola:

Cuando uses eventos, olvídate de poner mayúsculas... creo que algunos editores lo hacen pero no es lo correcto... y si la imágen de sustitución está en la variable RollOverImg, donde quieras hacer el efecto pones:

<img src="imagen.gif" onmouseover="this.src = RollOverImg.src"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 11/03/2011, 09:51
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: RollOver con cambio de imagenes

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Cuando uses eventos, olvídate de poner mayúsculas... creo que algunos editores lo hacen pero no es lo correcto... y si la imágen de sustitución está en la variable RollOverImg, donde quieras hacer el efecto pones:

<img src="imagen.gif" onmouseover="this.src = RollOverImg.src"...

Saludos
Hola.. gracias por responer y perdón por la demora. Intenté esto que me has dicho, pero no ha resultado :/

Mira dejo el pedacito de codigo

Código HTML:
<a href="javascript:avanzar(<?php echo $cat["CAT_ID"]; ?>,1,1)"><img src="<?php echo $in; ?>" onmouseover="this.src = <?php echo $out; ?>" onmouseout="this.src = <?php echo $in; ?>" name="rollOver" border="0" align="right"/></a> 
Las variables $in y $out de php son las que obtengo de mi base de datos con las rutas relativas de mis dos imagenes, la del mouseover y la del mouse out.

Muchas gracias!

EDITO: La pagina me pone "cargada con errores" cuando pongo la linea html que cite arriba y pongo el mouse sobre alguna de las imagenes.. o sea, da error cuando intenta hacer el rollover parece ser :(

Última edición por Megcapkill; 11/03/2011 a las 10:19 Razón: Información agregada
  #8 (permalink)  
Antiguo 12/03/2011, 09:21
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: RollOver con cambio de imagenes

Bueno aquí encontré la solución. Un poco de javascript que rescaté del dreamweaver y algo de lo que ya tenía hecho.. y anda. Les dejo el código por si a alguien más le es util:

Código Javascript:
Ver original
  1. <script type="text/JavaScript">
  2. <!--
  3. function MM_swapImgRestore() { //v3.0
  4.   var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  5. }
  6.  
  7. function MM_findObj(n, d) { //v4.01
  8.   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  9.     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  10.   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  11.   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  12.   if(!x && d.getElementById) x=d.getElementById(n); return x;
  13. }
  14.  
  15. function MM_swapImage() { //v3.0
  16.   var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  17.    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  18. }
  19. //-->
  20. </script>

Código HTML:
Ver original
  1. <a href="link.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('nombre_imagen','','ruta_rollover.png',1)"><img src="ruta_rollout.png" name="nombre_imagen" border="0" id="nombre_imagen" align="right"/></a>

Saludos a todos!
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 16:04.