Lección 5: Eventos
Cualquier actividad producida por un usuario se denomina Eventos
: pulsar una tecla, mover el ratón, hacer scroll, pulsar un botón… Y todos los eventos pueden ser escuchados para lanzar acciones. En otras palabras, podemos detectar y vincular cada evento a una funcionalidad de JavaScript. ¡Incluso extraer información!
Entre los eventos más importantes podemos encontrar:
- click: Se hace clic izquierdo con el ratón.
- scroll: Se mueve el
scroll
. - keydown: Se pulsa una tecla del teclado.
- submit: Se envía un formulario.
- load: Se ha terminado de cargar la página.
- focus: Un
input
recibe el foco. - blur: Un
input
pierde el foco. - animationstart: Empieza una animación.
- animationend: Termina una animación.
- transitionstart: Empieza una transición.
- transitionend: Termina una transición.
- contextmenu: Se hace clic derecho con el ratón.
- mouseenter: Entra el cursor del ratón.
- mouseleave: Sale el cursor del ratón.
- mousemove: Se mueve el cursor del ratón.
Deben aplicarse en addEventListener
, una función que posee todos los objetos de DOM (cualquier etiqueta que captures).
document.querySelector("#formulario").addEventListener("submit", function(evento) {
console.log('Se ha enviado el formulario');
}, false);
La función addEventListener
contiene 3 parámetros de entrada:
- Nombre de evento, en nuestro ejemplo ha sido
submit
. - Función que se ejecutará cuando se detecte el evento. Puede ser una función anónima o la referencia.
- Boleano para indicar si debe escuchar todo el árbol del DOM (cuando esta
true
) o solo escuchar la etiqueta (cuando estafalse
).
Hay muchos más. Puedes ojear la lista completa en la documentación de Mozilla Developer.
Ahora que ya conoces que son los eventos y cuales son los más destacables, vamos a probar algunos ejemplos de su uso cotidiano.
Clic sobre botón
A continuación puede ver que al hacer clic sobre un botón imprime por consola funciono
.
<input id="boton" type="button" value="Aprétame">
<script>
// Capturamos el boton
const boton = document.querySelector('#boton');
// Escuchamos, del boton, el evento 'click'. Ejecutaremos la función del segundo parámetro.
boton.addEventListener('click', function(evento) {
console.log('funciono');
}, false);
</script>
Apretar una tecla
En este ejemplo, cuando se pulse la tecla Enter
, se mostrará una alerta con el texto Me has pulsado enter
.
Es importarte destacar la condicional evento.code === "Enter"
. En caso de querer actuar sobre otra tecla, deberás buscar cual es el código de la tecla. Puedes jugar imprimiendo evento.code
o buscar la tecla en la lista completa de Mozilla.
<input id="campo" type="text" placeholder="Escribe y pulsa Enter cuando acabes">
<script>
// Functiones
function instrucciones(evento) {
// Filtra por la tecla Enter
if(evento.code === "Enter") {
alert("Me has pulsado enter");
}
}
// Eventos
document.body.addEventListener("keydown", instrucciones);
</script>
Scroll
Ejemplo donde se imprime por consola la posición del scroll
cada vez que se haga scroll.
document.addEventListener("scroll", function(evento) {
const ultimaPosicion = window.scrollY;
console.log(ultimaPosicion)
});
A partir de aquí, el resto del eventos son prácticamente iguales. Solo queda practicar.
Actividad 1
A parti del siguiente HTML...
<h1>¿Cómo se suele tomar el café?</h1>
<p>Las formas más populares de tomarlo son negro o solo y con leche (con o sin azúcar); también se le suele añadir crema o nata, leche condensada, chocolate o algún licor, es decir, dependiendo de la receta hay diversas formas de prepararlo. Se sirve habitualmente caliente, pero también se toma frío o con hielo. En España, Portugal y Paraguay es frecuente el consumo de café torrado o torrefacto, es decir, tostado en presencia de azúcar.</p>
Oculta p
y muéstralo únicamente si se pulsa en el h1
.
Actividad 2
Realiza un header
que se oculte cuando el scroll
(desplazamiento) se encuentre al inicio (posición 0) pero se muestre en cualquier otra posición.
Nivel pesadilla 👹
Incorpora una suave animación.
Actividad 3
Diseña una página con el fondo negro.
- Muestra en la esquina superior izquierda la
x
y lay
del ratón según se mueve. - Ahora solo se actualizará cuando se pulse con el botón izquierdo del ratón.
- Cuando se pulse en cualquier lugar, debe aparecer un circulo blanco.
Actividad 4
Muestra la foto de una montaña.
- Cuando pulses sobre ella, solo, debe cambiar sus coordenadas a la del ratón. Visualmente lo perseguirá.
- Si vuelves a pulsar dejará de moverse, quedándose en la posición donde se hizo clic.
Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.
¿Me invitas a un café? ☕
Puedes hacerlo usando el terminal.
ssh customer@andros.dev -p 5555
Comentarios
Nuevo comentario
Nueva replica {{ formatEllipsisAuthor(replyComment.author) }}
Escribe el primer comentario
{{ comments.length }} comentarios