实现一个简单的Todo List应用与LocalStorage

D
dashen37 2025-01-17T08:04:11+08:00
0 0 201

介绍

在日常生活中,我们经常会有许多待办事项需要处理。为了更好地管理这些任务,我们可以借助一个简单的Todo List应用。本文将介绍如何使用HTML、CSS和JavaScript实现一个简单的Todo List应用,并利用浏览器的LocalStorage保存数据。

准备工作

在开始编写应用之前,我们需要先准备一些基本的环境和文件。

  1. 创建一个新的HTML文件,命名为index.html
  2. 创建一个新的CSS文件,命名为styles.css
  3. 创建一个新的JavaScript文件,命名为app.js

编写HTML代码

index.html文件中,我们需要创建一个Todo List的基本结构。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Todo List</title>
    <link rel="stylesheet" type="text/css" href="styles.css">
  </head>
  <body>
    <h1>Todo List</h1>
    <input type="text" id="todoInput" placeholder="Add a new task">
    <button id="addButton">Add</button>
    <ul id="todoList"></ul>

    <script src="app.js"></script>
  </body>
</html>

在这个结构中,我们创建了一个输入框和一个按钮来添加新的任务,以及一个无序列表来展示已经添加的任务。

编写CSS代码

styles.css文件中,我们为Todo List添加一些基本的样式。

body {
  font-family: Arial, sans-serif;
  background-color: #f5f5f5;
  margin: 0;
  padding: 20px;
}

h1 {
  text-align: center;
}

#todoInput {
  width: 300px;
  padding: 10px;
  font-size: 18px;
}

#addButton {
  padding: 10px;
  font-size: 18px;
}

#todoList {
  list-style-type: none;
  padding: 0;
}

.todoItem {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  background-color: #fff;
  padding: 10px;
  border-radius: 5px;
}

.todoItem span {
  margin-left: 10px;
}

.deleteButton {
  margin-left: auto;
  font-size: 16px;
  color: red;
  cursor: pointer;
}

这段CSS代码用于设置Todo List的基本样式,包括背景颜色、字体样式、输入框和按钮的样式,以及任务项和删除按钮的样式。

编写JavaScript代码

app.js文件中,我们将实现Todo List的一些基本功能,包括添加任务、删除任务和保存任务到LocalStorage。

// 获取页面中的元素
const todoInput = document.getElementById('todoInput');
const addButton = document.getElementById('addButton');
const todoList = document.getElementById('todoList');

// 从LocalStorage加载已保存的任务
loadTasks();

// 添加按钮的click事件处理函数
addButton.addEventListener('click', function() {
  const task = todoInput.value;
  if (task) {
    addTask(task);
    todoInput.value = '';
  }
});

// 输入框的keydown事件处理函数
todoInput.addEventListener('keydown', function(event) {
  if (event.keyCode === 13) {
    const task = todoInput.value;
    if (task) {
      addTask(task);
      todoInput.value = '';
    }
  }
});

// 添加任务
function addTask(task) {
  const listItem = document.createElement('li');
  listItem.className = 'todoItem';

  const taskText = document.createElement('span');
  taskText.innerText = task;

  const deleteButton = document.createElement('span');
  deleteButton.className = 'deleteButton';
  deleteButton.innerText = 'Delete';

  deleteButton.addEventListener('click', function() {
    deleteTask(listItem);
  });

  listItem.appendChild(taskText);
  listItem.appendChild(deleteButton);
  todoList.appendChild(listItem);

  saveTasks();
}

// 删除任务
function deleteTask(item) {
  todoList.removeChild(item);
  saveTasks();
}

// 保存任务到LocalStorage
function saveTasks() {
  const tasks = [];
  const items = todoList.getElementsByClassName('todoItem');
  for (let i = 0; i < items.length; i++) {
    tasks.push(items[i].querySelector('span').innerText);
  }
  localStorage.setItem('tasks', JSON.stringify(tasks));
}

// 从LocalStorage加载任务
function loadTasks() {
  const tasks = JSON.parse(localStorage.getItem('tasks'));
  if (tasks) {
    tasks.forEach(function(task) {
      addTask(task);
    });
  }
}

这段JavaScript代码用于实现Todo List的功能。我们首先获取页面中的元素,并为按钮和输入框添加事件处理函数。然后,根据用户输入的任务,创建任务项并添加到Todo List中。当用户点击删除按钮时,删除相应的任务项。最后,我们通过LocalStorage保存和加载任务。

总结

通过HTML、CSS和JavaScript,我们成功地实现了一个简单的Todo List应用,并利用浏览器的LocalStorage保存了任务数据。通过这个应用,我们可以更好地管理日常的待办事项,提高工作和生活的效率。该应用只是一个简单的示例,你可以根据自己的需求进行更复杂的扩展和定制。希望这篇文章对你有所帮助!

相似文章

    评论 (0)