Aplicación de Tareas Javascript | Todo List (2021)

HTML
    <div class="container">
    <h1>Lista de tares</h1>
    <div class="search">
        <form>
            <input type="text" placeholder="Agregar tarea...">
            <button class="btn-add">+</button>
        </form>
    </div>
    <div class="li-container">
        <ul>
            
        </ul>
    </div>
    <div class="empty">
        <p>No tienes tareas pendientes.</p>
    </div>
</div>
CSS
body {
  margin: 0;
  padding: 0;
  font-size: 16px;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.5;
  background-color: lightseagreen;
  color: white;
}

h1 {
  text-align: center;
  color: darkslategrey;
}

.container {
  margin-top: 30px;
  margin-bottom: 30px;
  width: 30%;
  margin-left: auto;
  margin-right: auto;
  background-color: white;
  padding: 30px;
}

.search {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

form {
  display: flex;
}

input {
  padding: 15px 10px;
  outline: none;
  width: 400px;
}

.li-container {
  background-color: white;
  width: 100%;
  color: darkslategray;
  margin-top: 20px;
}

ul {
  padding: 0;
}

li {
  list-style: none;
  background-color: lightgray;
  border-radius: 10px;
  margin-top: 15px;
  display: flex;
}

li p {
  margin: 0;
  padding: 15px;
  width: 100%;
}

.btn-delete {
  margin-left: auto;
  border: none;
  background-color: #e31746;
  color: white;
  font-weight: bold;
  padding: 5px 10px;
  outline: none;
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  width: 10%;
  font-size: 1.2em;
}

.btn-delete:hover {
  cursor: pointer;
  background-color: lightseagreen;
}

.btn-add {
  padding: 5px 15px;
  border: none;
  color: white;
  font-family: fantasy;
  background-color: teal;
  font-size: 1.4rem;
  outline: none;
}

.btn-add:hover {
  cursor: pointer;
  background-color: darkcyan;
}

.empty {
  color: darkslategrey;
}
JS
const input  = document.querySelector('input');
const addBtn = document.querySelector('.btn-add');
const ul     = document.querySelector('ul');
const empty  = document.querySelector('.empty');

addBtn.addEventListener("click",(e)=>{
    e.preventDefault();
    
    const text = input.value;
    
    if(text !== ""){
        const li = document.createElement('li');
        const p  = document.createElement('p');
        p.textContent = text;
        
        li.appendChild(p);
        li.appendChild(addDeleteBtn());
        ul.appendChild(li);
        
        input.value = "";
        empty.style.display = "none";
    }
});

function addDeleteBtn(){
    const deleteBtn = document.createElement('button');
    
    deleteBtn.textContent = 'X';
    deleteBtn.className   = 'btn-delete';
    
    deleteBtn.addEventListener('click',(e) => {
       const item = e.target.parentElement;
       ul.removeChild(item);
       
       const items = document.querySelectorAll('li');
       
       if(items.length === 0){
           empty.style.display = "block";
       }
    });
    return deleteBtn;
}

/* 
    Fuente : https://www.youtube.com/watch?v=P03OPwNmDKs 
*/

Autor: Web322

Publicado: 21/09/2021

Compartir Elemento Web

Donar a Compositu
Otras formas de ayudar
  • Compártelo en tus redes sociales.
  • Recomienda los elementos.
  • Regístrate Aquí
  • Deja tu comentario agradeciendo el aporte.

Descarga el código completo del Elemento Web y archivos necesarios (imágenes, librerias, plugins, frameword, etc)

Deja tu comentario