Aprende a crear una lista de tareas personalizada con Bootstrap y almacenamiento local en este tutorial

Tiempo de lectura: 2 minutos

¡¡¡Buenos dias y feliz lunes !!!,

Vamos a por otro tutorial, en este caso se trata de una sencilla aplicación de creación de tareas o TO-DO LIST

A continuación os dejo el código de una manera de hacerlo:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
    <script src="to-do-list.js"></script>
    <title>To-do list para devcodelight</title>
</head>

<body>
    <div class="container">
        <h1 class="text-center">Lista de Tareas para Devcodelight</h1>
        <form id="todo-form">
          <div class="input-group mb-3">
            <input type="text" id="todo-input" class="form-control" placeholder="Agregar nueva tarea">
            <div class="input-group-append">
              <button class="btn btn-primary" type="submit">Agregar</button>
            </div>
          </div>
        </form>
        <ul id="todo-list" class="list-group"></ul>
        <button id="clear-btn" class="btn btn-danger">Limpiar Lista</button>
      </div>


</body>

</html>
El evento DOMContentLoaded se dispara cuando el documento HTML ha sido completamente cargado y parseado, sin necesidad de esperar a que todos los recursos externos, como imágenes o scripts, se hayan descargado.
<script>
        document.addEventListener('DOMContentLoaded', function () {
            const form = document.getElementById('todo-form');
            const todoInput = document.getElementById('todo-input');
            const todoList = document.getElementById('todo-list');
            const clearButton = document.getElementById('clear-btn');

            form.addEventListener('submit', function (event) {
                event.preventDefault();
                const todoText = todoInput.value;

                if (todoText) {
                    const todoItem = document.createElement('li');
                    todoItem.classList.add('list-group-item');
                    todoItem.textContent = todoText;
                    todoList.appendChild(todoItem);
                    todoInput.value = '';
                    saveTodos();
                }
            });

            clearButton.addEventListener('click', function () {
                todoList.innerHTML = '';
                saveTodos();
            });

            function loadTodos() {
                const todos = localStorage.getItem('todos');

                if (todos) {
                    todoList.innerHTML = todos;
                }
            }

            function saveTodos() {
                localStorage.setItem('todos', todoList.innerHTML);
            }

            loadTodos();
        });
    </script>

Implementación de la lógica en JavaScript

  • Añadimos un evento de escucha (addEventListener) al formulario (form) que se activa cuando se envía (submit) el formulario.
  • Dentro de la función del evento, prevenimos el comportamiento predeterminado del formulario utilizando event.preventDefault().
  • Obtenemos el valor del campo de entrada de la tarea (todoInput.value).
  • Creamos un nuevo elemento de lista (<li>) y le asignamos el valor de la tarea ingresada.
  • Agregamos la tarea a la lista de tareas (todoList.appendChild(todoItem)).
  • Limpiamos el campo de entrada (todoInput.value = '') para que esté vacío para ingresar una nueva tarea.
  • Llamamos a la función saveTodos() para guardar las tareas en el almacenamiento local.

Carga y guardado de tareas en el almacenamiento local

  • Definimos dos funciones: loadTodos() y saveTodos().
  • La función loadTodos() obtiene las tareas almacenadas en el almacenamiento local y las carga en la lista de tareas (todoList.innerHTML = todos).
  • La función saveTodos() guarda las tareas en el almacenamiento local utilizando localStorage.setItem('todos', todoList.innerHTML).

Carga inicial de las tareas al cargar la página

  • Utilizamos document.addEventListener('DOMContentLoaded', loadTodos) para llamar a la función loadTodos() cuando el documento HTML haya sido completamente cargado.
  • De esta manera, al cargar la página, se cargarán automáticamente las tareas previamente guardadas en el almacenamiento local.

Botón para limpiar la lista de tareas

  • Agregamos un botón adicional en el HTML con el ID clear-btn.
  • Añadimos un evento de escucha (addEventListener) al botón clear-btn que se activa cuando se hace clic en él.
  • Dentro de la función del evento, borramos el contenido de la lista de tareas (todoList.innerHTML = '').
  • Llamamos a la función saveTodos() para guardar los cambios en el almacenamiento local.

¡Y eso es todo! Siguiendo estos pasos, puedes crear una aplicación de lista de tareas funcional utilizando HTML, Bootstrap, CSS, JavaScript y localStorage. Más adelante iré añadiendo nueva funcionalidad.

No dudes en dejar tu comentario y tu like si te ha gustado!

Botón slider o deslizante en HTML, CSS y JavaScript

Botón slider o deslizante en HTML, CSS y JavaScript

Tiempo de lectura: 2 minutos A continuación muestro un ejemplo de como hacer un botón deslizante o slider usando HTML, CSS y JavaScript sencillo. Este código muestra un ejemplo de cómo crear un botón deslizante o slider utilizando HTML, CSS y JavaScript. El objetivo es cambiar el estado del botón al hacer clic en él. El código comienza definiendo los … Leer más

Tutorial de creación de un Loader Web utilizando CSS y JavaScript

Tutorial de creación de un Loader Web utilizando CSS y JavaScript

Tiempo de lectura: 2 minutos Los loaders web, también conocidos como spinners, son elementos visuales utilizados para indicar que una página web está cargando contenido o procesando una acción. En este tutorial, aprenderemos a crear un loader web personalizado utilizando CSS y JavaScript. El resultado será un loader animado y atractivo que podrás incorporar en tus proyectos web. Requisitos previos: … Leer más

Detectar cuándo se ha abierto una página web usando Javascript

Detectar cuándo se ha abierto una página web usando Javascript

Tiempo de lectura: < 1 minuto Hola, hoy vamos a ver cómo podemos detectar con Javascript, cuándo se ha abierto una pantalla web, por ejemplo, para refrescar su contenido. Para detectar cuando se ha abierto se utiliza la siguiente funcion: Para detectar que se cierra usamos esta función: isMa Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles … Leer más

Refrescar pantalla al volver en React Native

Refrescar pantalla al volver en React Native

Tiempo de lectura: < 1 minuto Si queremos refrescar una pantalla al volver desde otra pantalla usando React Native, tenemos que hacer lo siguiente: Primero importamos react-navigation Después lo añadimos en nuestro render: Y dentro de React.useCallback, realizamos las llamadas que queramos refrescar. En [] podemos poner la variable que cambia al regresar de otra pantalla por ejemplo [codigo]. Otra opción … Leer más

Crear un menú de navegación horizontal usando CSS

Crear un menú de navegación horizontal usando CSS

Tiempo de lectura: 2 minutos Hola, hoy te voy a enseñar cómo crear un menú de navegación horizontal usando CSS: HTML: Primero, crea la estructura HTML básica del menú de navegación: CSS: Ahora vamos a aplicar los estilos CSS para hacer que el menú sea horizontal: Con estos estilos, hemos creado un menú de navegación horizontal básico. Si quieres añadir … Leer más

Crear un contenedor Docker que incluye Node.js, MongoDB, Adminer y NGINX Proxy Manager para SSL utilizando Docker Compose.

Crear un contenedor Docker que incluye Node.js, MongoDB, Adminer y NGINX Proxy Manager para SSL utilizando Docker Compose.

Tiempo de lectura: 3 minutos En este tutorial, aprenderás cómo crear un contenedor Docker que incluye Node.js, MongoDB, Adminer y NGINX Proxy Manager para SSL utilizando Docker Compose. Paso 1: Crear el archivo docker-compose.yml Primero, crea un nuevo directorio en tu computadora para el proyecto y luego crea un archivo docker-compose.yml en el directorio raíz. Este archivo definirá los servicios … Leer más

Cómo crear una Progressive Web App (PWA) o web progresiva

Cómo crear una Progressive Web App (PWA) o web progresiva

Tiempo de lectura: 2 minutos Para crear una Progressive Web App (PWA) con Service Worker, sigue los siguientes pasos: Al crear una PWA con Service Worker, debes asegurarte de que la aplicación sea segura, confiable y fácil de usar en todos los dispositivos y navegadores. Esto significa que debes tener en cuenta la seguridad, la accesibilidad y la usabilidad de … Leer más