Membuat To Do List Menggunakan HTML, CSS, dan JavaScript

 
Membuat To Do List Menggunakan HTML, CSS, dan JavaScript - Codinganku

HTML Code

<!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">
    <title>Make a To Do List</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="app">
        <h1>to do list</h1>
        <ul>
        </ul>
        <input type="text" placeholder="New task">
        <button class="button_add">Add</button>
        <p>Insert a new task</p>
    </div>
</body>
<script src="script.js"></script>
</html>

CSS Code

* {
    margin: 0;
    padding: 0;
    outline: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    user-select: none;
}

html,body {
    width: 100%;
    height: 100%;
}

a {
    text-decoration: none;
    color: inherit;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    background-color: #f5f5f5;
    font-family: "Lato", sans-serif;
}

#app {
    width: 50%;
    min-width: 400px;
}

h1 {
    font-family: "Dancing Script", cursive;
    text-align: center;
    margin-bottom: 50px;
    font-size: 45px;
    color: #335c62;
    font-weight: 700;
}

p {
    font-family: "Dancing Script", cursive;
    text-align: center;
    margin-top: 30px;
    font-size: 30px;
    color: #5c5c5c;
    font-weight: 300;
}

ul {
    font-family: "Lato", sans-serif;
    font-size: 20px;
    font-weight: 400;
    font-style: italic;
    margin: 50px;
}

ul li {
    margin-bottom: 10px;
    color: #5c5c5c
}

ul li a {
    margin-left: 15px;
    color: white;
    cursor: pointer;
    border: 1px solid #7cbe7b;
    border-radius: 5px;
    padding: 0 15px 2px 15px;
    background-color: #7cbe7b;
}

ul li a:hover {
    opacity: 0.8;
}

input,button {
    font: 400 20px "Lato", sans-serif;
}

input {
    width: 60%;
    height: 40px;
    color: #5c5c5c;
    border: 1px solid #dcdce6;
    border-radius: 8px;
    padding: 0 24px;
    margin-right: 10px;
}

.button_add {
    width: 30%;
    height: 40px;
    border: 1px solid #dcdce6;
    border-radius: 8px;
    background-color: #59a2ad;
    color: #fff;
    cursor: pointer;
}

.button_add:hover {
    opacity: 0.9;
}

JavaScript Code

var listElement = document.querySelector("#app ul");
var inputElement = document.querySelector("#app input");
var buttonElement = document.querySelector("#app button");

var todos = JSON.parse(localStorage.getItem("list_todos")) || [];
function renderTodos() {
    listElement.innerHTML = "";

    for (todo of todos) {
        var todoElement = document.createElement("li");
        var todoText = document.createTextNode(todo);
        var linkElement = document.createElement("a");

        linkElement.setAttribute("href", "#");
        var pos = todos.indexOf(todo);
        linkElement.setAttribute("onclick", "deleteTodo(" + pos + ")");

        var linkText = document.createTextNode("done");
        linkElement.appendChild(linkText);
        todoElement.appendChild(todoText);
        todoElement.appendChild(linkElement);
        listElement.appendChild(todoElement);
    }
}

renderTodos();
function addTodo() {
    var todoText = inputElement.value;

    todos.push(todoText);
    inputElement.value = "";
    renderTodos();
    saveToStorage();
}

buttonElement.onclick = addTodo;
function deleteTodo(pos) {
    todos.splice(pos, 1);
    renderTodos();
    saveToStorage();
}

function saveToStorage() {
    localStorage.setItem("list_todos", JSON.stringify(todos));
}

Posting Komentar