Ejercicio JS – Como cargar una imagen aleatoria al clicar un botón

Ejercicio JS – Como cargar una imagen aleatoria al clicar un botón

3.3
(3)

En este ejercicio vamos a modificar los atributos de un nodo del documento web mediante javascript

Vamos a usar los siguientes conceptos.

  • Llamar un nodo mediante document.getElementsByTagName().
  • Vamos a usar el conocido servicio de internet lorempixel.com
  • Vamos a modificar un atributo por acceso directo al «src» o mediante setAttribute()

Te recomiendo esta lectura.

Vamos a repasarlo mediante un ejercicio.

Enunciado

Dado el siguiente código html completa el script para que cada vez que se haga clic en el botón se cargue una nueva imagen de 400px de ancho por 400px de alto.

NOTA: http://lorempixel.com es un conocido servicio de internet que devuelve imágenes aleatorias cada vez.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="description" content="">
        <meta name="author" content="Francesc Ricart">
        <title>Ejercicio js - imágenes aleatorias</title>
        
    </head>
    <body>
        
    <img>
    <button onclick="imagenAleatoria()">Generar imagen</button>
    
    <script>
        
    function imagenAleatoria(){
    //resolución del ejercicio a rellenar 
    }
        
    </script>

    </body>
</html>
Ver solución (Haz clic)

Solución del ejercicio

Este ejercicio es en realidad muy sencillo.

Simplemente debemos

  1. Identificar y acceder al nodo. Una buena práctica es  guardarlo en una variable.
  2. Acceder al atributo src. Podemos hacerlo de dos formas (observarlas comentadas en el código de la función imagenAleatoria().
  3. Modificar la url existente por una de nuestro interés.
  4. Esperar a que cargue la imagen, suele tardar un poco.
  5. Si tarda demasiado activar la consola del navegador para detectar posibles errores.

¿Como queda el documento html?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="description" content="">
        <meta name="author" content="Francesc Ricart">
        <title>Ejercicio js - imágenes aleatorias</title>
        
    </head>
    <body>
        
    <img>
    <button onclick="imagenAleatoria()">Generar imagen</button>
    
    <script>
        
    function imagenAleatoria(){
        var url = "http://lorempixel.com/400/400/"
        document.getElementsByTagName("img")[0].src=url;
        //document.getElementsByTagName("img")[0].setAttribute("src",url)
    }
        
    </script>

    </body>
</html>

¡Hola!

Querido lector,

Este ejercicio javascript nos ha servido para practicar la inserción y/o modificación de atributos de una etiqueta HTML de un modo muy simple.

¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!

¿Te ha gustado esta publicación?

¡Valora sobre 5 estrellas esta publicación!

Puntuación media 3.3 / 5. Votos: 3

Todavía no hay votos. Sé el primero en valorar la entrada.

Si te ha gustado este contenido...

¡Sígueme en las redes!

Vaya, parece que hay puntos a corregir

¿Me ayudas a mejorar?

¿Dónde he fallado?

Francesc Ricart
hola@francescricart.com

Aprender y enseñar. Enseñar y aprender. En el ámbito docente soy docente ocupacional. En el ámbito profesional consultor web. Ofrezco servicios de mejora continua y mantenimiento web. ¿Qué quieres aprender hoy? Encontraréis más acerca de mi en la página sobre mi

2 Comments
  • Marina Borenstein
    Posted at 21:57h, 03 julio Responder

    Buenas tardes! Muy bueno tu post. Y si quisiera hacerlo con una galería propia de imágenes, como podría hacerlo? Saludos!

    • Francesc Ricart
      Posted at 16:00h, 07 julio Responder

      Hola Marina,
      Buena pregunta.
      Esta url siempre devuelve una imagen distinta. Pero entiendo que no es lo que tú necesitas.
      Para hacerlo en primer lugar escribiría las url de las imágenes en una lista (array).
      1) Por ejemplo la variable
      imagenes = [url_imagen1, url_imagen2, url_imagen3];
      2) a continuación únicamente necesitas generar un número aleatorio. Puedes encontrar en este ejercicio cómo generar un número aleatorio.
      3) finalmente únicamente tienes que llamar a
      imagenes[i] dónde i es el número aleatorio generado.

      PD: otra opción sería llamarlo desde una BBDD junto con php + mysql

Post A Comment