Задача: сделать to-do list

Задача: сделать to-do list


Цель

Создать интерактивный To-Do список, который позволяет пользователям добавлять, удалять и отмечать задачи как выполненные.

Требования

  1. HTML:
  2. Поле ввода для добавления новой задачи.
  3. Кнопка для добавления задачи.
  4. Список для отображения задач.
  5. CSS:
  6. Стиль для To-Do списка.
  7. Стиль для задач (выполненные задачи должны быть зачеркнуты).
  8. Анимация для добавления и удаления задач.
  9. JavaScript:
  10. Функция для добавления новой задачи.
  11. Функция для удаления задачи.
  12. Функция для отметки задачи как выполненной.

Примерный макет HTML

htmlКопировать код
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>To-Do List</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="container">
        <h1>To-Do List</h1>
        <input type="text" id="taskInput" placeholder="Add a new task...">
        <button id="addTaskButton">Add Task</button>
        <ul id="taskList"></ul>
    </div>
    <script src="script.js"></script>
</body>
</html>

Примерный стиль CSS

cssКопировать код
body {
    font-family: Arial, sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f4f4f4;
}

.container {
    background: #fff;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    width: 300px;
    text-align: center;
}

input[type="text"] {
    width: 80%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ddd;
}

button {
    padding: 10px;
    border: none;
    background-color: #3498db;
    color: #fff;
    cursor: pointer;
}

button:hover {
    background-color: #2980b9;
}

ul {
    list-style-type: none;
    padding: 0;
}

li {
    padding: 10px;
    border-bottom: 1px solid #ddd;
    display: flex;
    justify-content: space-between;
}

li.completed {
    text-decoration: line-through;
    color: #999;
}

li button {
    background-color: #e74c3c;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 5px 10px;
}

li button:hover {
    background-color: #c0392b;
}

Примерный скрипт JavaScript

javascriptКопировать код
document.addEventListener('DOMContentLoaded', () => {
    const taskInput = document.getElementById('taskInput');
    const addTaskButton = document.getElementById('addTaskButton');
    const taskList = document.getElementById('taskList');

    addTaskButton.addEventListener('click', () => {
        const taskText = taskInput.value.trim();
        if (taskText !== '') {
            addTask(taskText);
            taskInput.value = '';
        }
    });

    function addTask(taskText) {
        const li = document.createElement('li');
        li.textContent = taskText;

        const completeButton = document.createElement('button');
        completeButton.textContent = 'Complete';
        completeButton.addEventListener('click', () => {
            li.classList.toggle('completed');
        });

        const deleteButton = document.createElement('button');
        deleteButton.textContent = 'Delete';
        deleteButton.addEventListener('click', () => {
            taskList.removeChild(li);
        });

        li.appendChild(completeButton);
        li.appendChild(deleteButton);
        taskList.appendChild(li);
    }
});

Инструкции

  1. Создайте HTML-файл и вставьте примерный макет.
  2. Создайте CSS-файл и добавьте стили.
  3. Создайте JavaScript-файл и реализуйте логику.
  4. Откройте HTML-файл в браузере и убедитесь, что все работает корректно.

Дополнительные улучшения

  • Сохранение задач в localStorage, чтобы они сохранялись при перезагрузке страницы.
  • Добавление возможности редактирования задач.
  • Добавление категорий задач и фильтрации по категориям.
  • Анимации для добавления и удаления задач с помощью CSS.


Report Page