使用html+css+js写一个的待办事项,要求带有总数,已办,未办,需要看到添加的内容。新增分为2个页面
时间: 2024-04-18 16:26:21 浏览: 90
js-todo-list:待办事项清单。 使用HTML,CSS和js完成
你可以使用以下的HTML、CSS和JavaScript代码来创建一个简单的待办事项列表,包含总数、已完成和未完成的任务,并且可以在两个页面中添加新任务。
首先,创建一个名为`index.html`的文件,用于显示待办事项列表的主页面:
```html
<!DOCTYPE html>
<html>
<head>
<title>待办事项</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
text-align: center;
}
.todo-container {
margin: 20px auto;
width: 400px;
border: 1px solid #ddd;
padding: 10px;
}
.todo-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.todo-header span {
font-weight: bold;
}
.todo-list {
margin-top: 20px;
}
.todo-item {
margin-bottom: 10px;
display: flex;
align-items: center;
}
.todo-item input[type="checkbox"] {
margin-right: 10px;
}
.todo-item.completed span {
text-decoration: line-through;
color: #999;
}
.add-todo-btn {
display: block;
margin-top: 20px;
text-align: center;
}
</style>
</head>
<body>
<h1>待办事项</h1>
<div class="todo-container">
<div class="todo-header">
<span>总数: <span id="total-count">0</span></span>
<span>已办: <span id="completed-count">0</span></span>
<span>未办: <span id="remaining-count">0</span></span>
</div>
<div class="todo-list">
<!-- 待办事项将通过JavaScript动态添加到这里 -->
</div>
<a href="add-todo.html" class="add-todo-btn">添加任务</a>
</div>
<script src="main.js"></script>
</body>
</html>
```
然后,创建一个名为`add-todo.html`的文件,用于添加新任务的页面:
```html
<!DOCTYPE html>
<html>
<head>
<title>添加任务</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
text-align: center;
}
.add-todo-container {
margin: 20px auto;
width: 400px;
border: 1px solid #ddd;
padding: 10px;
}
.add-todo-form {
display: flex;
align-items: center;
}
.add-todo-form input[type="text"] {
flex: 1;
padding: 5px;
margin-right: 10px;
}
.add-todo-form button {
padding: 5px 10px;
}
</style>
</head>
<body>
<h1>添加任务</h1>
<div class="add-todo-container">
<form class="add-todo-form">
<input type="text" id="todo-input" placeholder="输入任务内容..." />
<button type="submit">添加</button>
</form>
</div>
<script src="main.js"></script>
</body>
</html>
```
最后,创建一个名为`main.js`的JavaScript文件,用于处理待办事项列表的逻辑:
```javascript
// 用于存储待办事项的数组
let todos = [];
// 获取DOM元素
const todoListContainer = document.querySelector('.todo-list');
const totalCountElement = document.getElementById('total-count');
const completedCountElement = document.getElementById('completed-count');
const remainingCountElement = document.getElementById('remaining-count');
const addTodoForm = document.querySelector('.add-todo-form');
// 添加新任务的事件监听
addTodoForm.addEventListener('submit', function(event) {
event.preventDefault();
const todoInput = document.getElementById('todo-input');
const newTodo = todoInput.value.trim();
if (newTodo !== '') {
todos.push({
task: newTodo,
completed: false
});
updateTodoList();
todoInput.value = '';
}
});
// 更新待办事项列表
function updateTodoList() {
todoListContainer.innerHTML = '';
todos.forEach(function(todo, index) {
const todoItem = document.createElement('div');
todoItem.classList.add('todo-item');
const checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.checked = todo.completed;
checkbox.addEventListener('change', function(event) {
todos[index].completed = event.target.checked;
updateTodoList();
});
const todoText = document.createElement('span');
todoText.textContent = todo.task;
if (todo.completed) {
todoItem.classList.add('completed');
}
todoItem.appendChild(checkbox);
todoItem.appendChild(todoText);
todoListContainer.appendChild(todoItem);
});
totalCountElement.textContent = todos.length;
completedCountElement.textContent = todos.filter(todo => todo.completed).length;
remainingCountElement.textContent = todos.filter(todo => !todo.completed).length;
}
// 初始化待办事项列表
updateTodoList();
```
这样,你就可以在浏览器中打开`index.html`来查看待办事项列表,并在点击"添加任务"链接后跳转到`add-todo.html`页面来添加新任务。新任务将显示在待办事项列表中,你可以勾选复选框来标记任务完成或未完成。总数、已完成和未完成的任务数量也会根据任务状态自动更新。
阅读全文