Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Boton animado

Estas en el tema de Boton animado en el foro de Javascript en Foros del Web. Hice un botón q tiene una imagen y cuando me paro sobre el, la imagen cambia. Llamo al evento onmouseover y ahi llamo a la ...
  #1 (permalink)  
Antiguo 19/03/2013, 09:03
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 0
Boton animado

Hice un botón q tiene una imagen y cuando me paro sobre el, la imagen cambia. Llamo al evento onmouseover y ahi llamo a la funcion q cambia la imagen, me funciona perfecto, pero lo que quiero es en el evento pasarle por parámetro el id de la capa donde esta la imagen, para entonces en la funcion capturar ese id y cambiar la imagen de la capa con ese id (y esto es lo que no se), porque yo lo hice sin pasarle parametro y en la funcion obtengo la capa de la imagen por el getElementById, pero si quiero hacer mas botones entonces tengo que repetir la funcion y lo que quiero es una sola funcion que le paso por parametro el id de la capa a la que le voy a cambiar la imagen. Aqui les va el codigo:

////Javascript

<script type="text/javascript">
function cambio1() {
document.getElementById("imagen").style.background Image='url("2.png")';
}
function cambio2(id) {
document.getElementById("imagen").style.background Image='url("1.png")';
}
</script>

//////HTML

<div id="boton">
<div id="imagen"></div>
<div id="texto"><a href="" onmouseover="cambio1()" onmouseout="cambio2()">Registrar Rol</a></div>
</div>
  #2 (permalink)  
Antiguo 19/03/2013, 15:23
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Boton animado

prueba con el método previousElementSibling
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 19/03/2013, 17:10
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 10 meses
Puntos: 17
Respuesta: Boton animado

Buenas, tu quieres que con 2 funciones solamente, te permita cambiar una imagen por otra aunque hayan 10 imágenes, no? te puedo dar una pista porque ahora mismo no caigo bien en como hacerlo, pero aqui te dejo algo que seguro te sirva si lo planteas bien.

Código Javascript:
Ver original
  1. <script>
  2.     /* Con esto posicionamos las imagenes en esos valores
  3.         aproximadamente el centro de la página y en grande.
  4.     */
  5.         function subir(x)
  6.         {
  7.         var imagenes='imagen'+ x
  8.         document.getElementById(imagenes).style.top='20%';
  9.         }
  10.        
  11.         function vuelve(x)
  12.         {
  13.         var imagenes='imagen'+ x
  14.         document.getElementById(imagenes).style.top='85%';
  15.         }
  16.        
  17.     </script>

Código HTML:
Ver original
  1.     <h3 align="center">Posicionate sobre la imagen </h3>
  2.     <!--Imagenes que suben-->
  3.     <img id="imagen1" src="barca.jpg" onmouseOver="subir(1)" onmouseOut="vuelve(1)"/>
  4.     <img id="imagen2" src="real.png" onmouseOver="subir(2)" />
  5.     <img id="imagen3" src="nal.jpg" onmouseOver="subir(3)" />
  6.     <img id="imagen4" src="amadrid.png" onmouseOver="subir(4)" />
  7.     <img id="imagen5" src="chelsea.jpg" onmouseOver="subir(5)" />
  8.    
  9. </body>

Esto es un ejemplo pero no hace lo de cambiar el background como lo veras, pero es una idea de como hacer una función para cuando estes encima (onMouseOver) y otra para cuando salgas (onmouseOut).

Aquí lo importante es

function subir(x)
{
var imagenes='imagen'+ x
.......
........
}

Como ves a la funcion le doy como parametro una variable ( llamada x )
Luego abajo digo que. Var imagenes = 'imagen' + x
Con lo que imagen es el Id de cada una + la x que es un número asignado a cada imagen.
el 1 para la 1 imagen, el 2 la segunda etc...

Abajo en el BODY ves :

Código HTML:
Ver original
  1. onmouseOver="subir(1)" onmouseOut="vuelve(1)"

Aqui le paso a la function subir entre parentesis la imagen 1.
Y luego a la funcion vuelve el 1, y asi con el resto.. espero te ayude esto.

-------------------------------------

Te dejo un ejemplo aparte, aunque no es lo que quieres de como cambiar imagenes.

Código Javascript:
Ver original
  1. <HTML>
  2. <HEAD>
  3.   <TITLE>Cambia imagen cuando pasa el ratón</TITLE>
  4.   <SCRIPT LANGUAGE="JavaScript">
  5.                 function activar(Img) {
  6.                         document.getElementsByName("messi2")[0].setAttribute("src", "messi.jpeg");
  7.                 }
  8.                
  9.                 function desactivar() {
  10.                         document.getElementsByName("messi2")[0].setAttribute("src", "messi2.jpeg");
  11.                 }
  12.   </SCRIPT>
  13.  
  14.   <style>
  15.   #titulo {
  16.   position: relative;
  17.   text-align: center;
  18.   }
  19.  
  20.   </style>
  21.  
  22. </HEAD>
  23.  
  24.         <BODY>
  25.                 <h1 id="titulo"> En la imagen para que cambie</h1>
  26.                 <A HREF="cambia.html" onMouseOver="activar();" onMouseOut="desactivar();">
  27.                     <IMG NAME="messi2" SRC="messi2.jpeg" BORDER=0>
  28.                 </A>
  29.         </BODY>
  30. </HTML>
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #4 (permalink)  
Antiguo 19/03/2013, 19:35
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Boton animado

ya me funciono perfecto con pasarle por parametro el numero de la imagen, thank you
Saludos
  #5 (permalink)  
Antiguo 19/03/2013, 19:50
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Boton animado

Según lo veo te está complicando, hacé un sprite de 2 imágenes por botón y utilizá el pseudoatributo hover de css

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Efecto hover css</title>
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8.  
  9. a#uno{
  10. width: 100px;
  11. height: 25px;
  12. background-position: center top;
  13. background-image: url('boton_uno.jpg');
  14. border: none;
  15. display:block;
  16. }
  17. a#uno:hover{
  18. background-position: center -25px;
  19. }
  20.  
  21. a#dos{
  22. width: 100px;
  23. height: 25px;
  24. background-position: center top;
  25. background-image: url('boton_dos.jpg');
  26. border: none;
  27. display:block;
  28. }
  29.  
  30. a#dos:hover{
  31. background-position: center -25px;
  32. }
  33.  
  34. a{
  35. margin: 3px;
  36. }
  37. /*]]>*/
  38. </head>
  39. <a href="uno.html" id="uno"><!-- fix --></a>
  40. <a href="dos.html"  id="dos"><!-- fix --></a>
  41. </body>
  42. </html>

Demo
http://foros.emprear.com/css/over_in...lover-css.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: boton, funcion, html
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 08:50.