Aprende como crear tu propia aplicación de lista de tareas básica con Javascript.

Share on Pinterest
Comparte con tus amigos










Enviar

Como parte del Curso de Javascript Básico desde 0 hoy vamos aprender a hacer una aplicación web sencilla, en especifico una App para listas de tareas, similar a las famosas apps para tareas como Wunderlist!

El ejemplo de lo que estaremos realizando lo puedes ver desde nuestro codepen:

See the Pen App Lista de Tareas Basica con JS by Carlos Arturo Esparza (@falconmasters) on CodePen.5968

 

El tutorial se divide en 2 videos en los cuales explicaremos de forma rapida la estructura html y algunas clases importantes de CSS que estaremos utilizando, después pasaremos al código JS en donde estableceremos los eventos de nuestros elementos y programaremos las funciones que ejecutara cada evento.

Como hacer una App Lista de Tareas con Javascript (Curso JS)

[Parte #2 en unas horas]

Código en Github: https://github.com/falconmasters/lista-tareas

Código HTML:

Importante!

Ten en cuenta que para que funcione el código correctamente tienes que tener correctamente la ruta de tus archivos CSS y JS, en mi caso los he puesto dentro de la carpeta CSS y JS cada uno en su respectiva carpeta.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
	<link rel="stylesheet" href="css/estilos.css">
	<link rel="stylesheet" href="https://necolas.github.io/normalize.css/3.0.2/normalize.css">
	<title>Lista de Tareas</title>
</head>
<body>
	<div class="principal">
		<div class="wrap">
			<form class="formulario" action="">
				<input type="text" id="tareaInput" placeholder="Agrega tu tarea">
				<input type="button" class="boton" id="btn-agregar" value="Agregar Tarea">
			</form>
		</div>
	</div>

	<div class="tareas">
		<div class="wrap">
			<ul class="lista" id="lista">
				<li><a href="#">1 Lorem ipsum dolor sit amet.</a></li>
				<li><a href="#">2 Lorem ipsum dolor sit amet.</a></li>
				<li><a href="#">3 Lorem ipsum dolor sit amet.</a></li>
			</ul>
		</div>
	</div>
	<script src="js/main.js"></script>
</body>
</html>

Código CSS:

* {
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	background: #FAFAFA;
	font-family: arial, helvetica, sans-serif;
	font-size: 16px;
}

.wrap {
	margin: auto;
	max-width: 800px;
	width: 90%;
}

.principal {
	background: #F44336;
	border-top: 20px solid #D32F2F;
	color: #fff;
	padding: 50px 0;
	width: 100%;
}

.principal .formulario {
	color: #212121;
	text-align: center;
}

.principal .formulario input[type=text] {
	margin-bottom: 20px;
	padding: 10px;
	width: 100%;
}

.principal .formulario input[type=text].error {
	border: 5px solid #D32F2F;
	color: red;
}

.principal .formulario .boton {
	background: none;
	border: 1px solid #D32F2F;
	color: #fff;
	display: inline-block;
	font-size: 16px;
	padding: 15px;
}

.principal .formulario .boton:hover {
	border: 1px solid #fff;
}

/* - Tareas - */
.tareas .lista {
	list-style: none;
}

.tareas .lista li {
	border-bottom: 1px solid #B6B6B6;
}

.tareas .lista li a {
	color: #212121;
	display: block;
	padding: 20px 0;
	text-decoration: none;
}

.tareas .lista li a:hover {
	text-decoration: line-through;
}

Código JS:

(function(){
	// Variables
	var lista = document.getElementById("lista"),
		tareaInput = document.getElementById("tareaInput"),
		btnNuevaTarea = document.getElementById("btn-agregar");

	// Funciones
	var agregarTarea = function(){
		var tarea = tareaInput.value,
			nuevaTarea = document.createElement("li"),
			enlace = document.createElement("a"),
			contenido = document.createTextNode(tarea);

		if (tarea === "") {
			tareaInput.setAttribute("placeholder", "Agrega una tarea valida");
			tareaInput.className = "error";
			return false;
		}

		// Agregamos el contenido al enlace
		enlace.appendChild(contenido);
		// Le establecemos un atributo href
		enlace.setAttribute("href", "#");
		// Agrergamos el enlace (a) a la nueva tarea (li)
		nuevaTarea.appendChild(enlace);
		// Agregamos la nueva tarea a la lista
		lista.appendChild(nuevaTarea);

		tareaInput.value = "";

		for (var i = 0; i <= lista.children.length -1; i++) {
			lista.children[i].addEventListener("click", function(){
				this.parentNode.removeChild(this);
			});
		}

	};
	var comprobarInput = function(){
		tareaInput.className = "";
		teareaInput.setAttribute("placeholder", "Agrega tu tarea");
	};

	var eleminarTarea = function(){
		this.parentNode.removeChild(this);
	};

	// Eventos

	// Agregar Tarea
	btnNuevaTarea.addEventListener("click", agregarTarea);

	// Comprobar Input
	tareaInput.addEventListener("click", comprobarInput);

	// Borrando Elementos de la lista
	for (var i = 0; i <= lista.children.length -1; i++) {
		lista.children[i].addEventListener("click", eleminarTarea);
	}
}());

 

Share on Pinterest
Comparte con tus amigos










Enviar

FalconMasters Carlos Arturo

22 respuestas a “Como hacer una App Lista de Tareas con Javascript”

  1. Nelson Diaz dice:

    Me gusto mucho el video!! , ya pude hacer que que la tarea se guarde , Muchas gracias por tus tutoriales , saludos!

    • Jetpack83 dice:

      ¿como le hiciste para que la tarea se guarde? cada vez que refresco la pagina, se borran las tareas que ingrese anteriormente

      • KikeZ dice:

        Para que se guarden debes hacer la parte de backend… programar la grabada en el servidor de base de datos… eso se hace con lenguajes php ruby etc… tienes que investigar

  2. Miguel Gomez dice:

    Excelente el video la verdad, me gusto mucho la practica.

    Tengo una pregunta, en el caso de tenga varios inputs, por ejemplo que posea nombre, apellido y correo, como crear todos los elemento dentro de la lista, tocaria crear uno por uno o hay alguna forma de crearlos todo con un siclo.

    Algo mas o menos como esta en la imagen.

    • Es igual, agregas un nuevo div que seria el contenedor de user info, y a cada uno le vas agregando el nuevo elemento creado, en la practica de la lista de tareas creabamos el elemento li y poniamos dentro el elemento a, aqui en este caso tu crearias el div y dentro del div crearias varios parrafos.

  3. el jefe diversion dice:

    falconmaster y para agregar tambien hora como ago

  4. Miguel Gomez dice:

    Tengo una pregunta con respecto aun ejercicio que intentado hacer y no logro corregirlo, tengo 3 arreglos ( nombre, apellidos y hobbies), y quiero crear una tablar con javascript en donde por cada elemento del arreglo me crea un junto con los 3 de cada elemento de los arreglos, logro recorrer los arreglos pero al momento de crear la tabla me imprime todos los elementos dentro en un solo , como podria hacer para que por cada iteracion me cree un y luego agregarlo a un nuevo para que quede como una tabla.

  5. Nelson Pineda dice:

    Gracias FM, ahora veo que estos son los #23 y #24 del curso , al no seguir la secuencia numerica en Youtube me perdi, pero al entrar al canal lo resolvi. voy a probar harce todo esto, Saludos.

  6. erick jr bernett meza dice:

    Necesito ayuda en como poner un espacio en mi sitio web para cambiar password :(

  7. fausto_tnd dice:

    Oye @FalconMasters deverias hacer un curso de Gráficos Vectoriales SVG, creo que es una buena idea.

  8. Juan Pablo Palomino Mantilla dice:

    Buenos días, tengo una pregunta, porque me sale esto si ya hice y copie todo como estaba??

  9. Jetpack83 dice:

    ¿Como puedo hacer para que las tareas se guarden? cada vez que refresco la pagina, se borran las tareas.

  10. Andrés Lill dice:

    Hola!
    Estoy llevando el curso de PHP y MySQL, me gusta mucho el curso; pero tambien tengo interés en el curso de JS lo que pasa es que no lo encuentro dentro de la lista de cursos, donde lo puedo encontrar o cual me recomiendan para empezar desde 0??

  11. Adrian Valderrey dice:

    Excelente post, Falcon. Eres un buen tutor. Los que puedas pasen por mi blog: http://www.tickteam.com.ve/blog

  12. julio500 dice:

    Hola, muy buen tutorial.
    Tengo dos incidencias de funcionamiento, la primera es con el JS, que en la línea 40 dice tearea.Input en lugar de tarea.Input, esta se solucionó con esta corrección.
    La segunda, es que «Agrega una tarea válida» no se imprime en color rojo en Chrome ni Safari, sólo aparece en color rojo en Firefox.
    Alguien sabe como solucionar esto?

  13. fitosis dice:

    Excelente Post!!, podrías hacer este ejemplo con Local Storage? ahi no sería necesario usar php

  14. TomCode dice:

    FalconMaster me sale un error en la parte del js, al momento de eliminar una tarea me sale que no puede leer la propiedad ‘removeChild’ of null

  15. Cristian dice:

    Hola, Donde puedo descargar JavaScript ?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Aprende con nuestros cursos

React y Firebase: El Curso Completo, Práctico y desde Cero

React y Firebase: Curso Completo, Práctico y desde Cero

En este curso aprenderás React desde lo mas básico y paso por paso hasta un nivel avanzado donde podrás crear sitios y aplicaciones web reales.

Inicia el curso

Diseño Web Profesional El Curso Completo, Practico y desde 0

Bienvenido al Curso de Diseño Web, el curso en el que aprenderás paso por paso y desde cero todo lo que necesitas para convertirte en un diseñador web.

Inicia el curso

Bootstrap 5: El Curso Completo, Práctico y Desde Cero

Aprende Bootstrap 4, el framework de diseño web mas importante del mundo.

Inicia el curso
PHP y MYSQL: El Curso Completo, Practico y Desde Cero

PHP y MYSQL: El Curso Completo, Practico y Desde Cero

Aprende a crear cualquier Aplicacion y Sitio Web!. Aprende PHP y MySQL.

Inicia el curso