Listado completo de tutoriales
Eventos onMouseOver y onMouseOut |
El evento onMouseOver se ejecuta cuando pasamos la flecha del mouse sobre un elemento HTML y el evento onMouseOut cuando la flecha abandona el mismo.
Para probar estos eventos implementaremos una página que cambie el color de un cuadrado de 200px de ancho y 200px de alto.
Implementaremos una función que cambie el color con un valor que llegue como parámetro. Cuando retiramos la flecha del mouse volvemos a pintar de negro el fondo de cuadrado:
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <a href="#" onMouseOver="pintar('#f00')" onMouseOut="pintar('#000')">Rojo</a> - <a href="#" onMouseOver="pintar('#0f0')" onMouseOut="pintar('#000')">Verde</a> - <a href="#" onMouseOver="pintar('#00f')" onMouseOut="pintar('#000')">Azul</a> <div id="cuadrado1" style="background:#000;width:200px;height:200px"></div> <script> function pintar(col) { document.getElementById('cuadrado1').style.backgroundColor = col; } </script> </body> </html>
Las llamadas a las funciones las hacemos inicializando las propiedades onMouseOver y onMouseOut:
<a href="#" onMouseOver="pintar('#f00')" onMouseOut="pintar('#000')">Rojo</a> - <a href="#" onMouseOver="pintar('#0f0')" onMouseOut="pintar('#000')">Verde</a> - <a href="#" onMouseOver="pintar('#00f')" onMouseOut="pintar('#000')">Azul</a>
Definimos un elemento 'div' de color negro de 200 píxeles de ancho y alto:
<div id="cuadrado1" style="background:#000;width:200px;height:200px"></div>
La función 'pintar' recibe el color y accedemos a la propiedad 'style' y de esta a backgroundColor:
function pintar(col) { document.getElementById('cuadrado1').style.backgroundColor = col; }Otro problema que podemos probar es pinta de color el interior de una casilla de una tabla y regresar a su color original cuando salimos de la misma:
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <table border="1"> <tr> <td onMouseOver="pintar(this,'#f00')" onMouseOut="pintar(this,'#fff')">rojo</td> <td onMouseOver="pintar(this,'#0f0')" onMouseOut="pintar(this,'#fff')">verde</td> <td onMouseOver="pintar(this,'#00f')" onMouseOut="pintar(this,'#fff')">azul</td> </tr> </table> <script> function pintar(objeto, col) { objeto.style.backgroundColor = col; } </script> </body> </html>
La lógica es bastante parecida a la del primer problema, pero en éste le pasamos como parámetro a la función la referencia a la casilla que queremos que se coloree (this):
<td onMouseOver="pintar(this,'#f00')" onMouseOut="pintar(this,'#fff')">rojo</td> <td onMouseOver="pintar(this,'#0f0')" onMouseOut="pintar(this,'#fff')">verde</td> <td onMouseOver="pintar(this,'#00f')" onMouseOut="pintar(this,'#fff')">azul</td>