您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

使用 Tailwind CSS 和 JavaScript 的待办事项列表应用程序

时间:2023-01-06 11:43:01  来源:今日头条  作者:启辰8

 

作为 Web 开发人员,我学会构建的第一批应用程序类型之一是待办事项列表。 这些简单但功能强大的工具使我们能够保持井井有条并专注于我们的任务,使它们成为任何希望提高工作效率的人的必备工具。 在本教程中,我将引导您使用 htmlcssJAVAScript 从头到尾构建一个待办事项列表应用程序。

第 1 步:设置 HTML

构建任何 Web 应用程序的第一步是设置 HTML 结构。 对于我们的待办事项列表应用程序,我们需要一些不同的元素:

添加任务的表单

用于输入任务的输入字段

提交任务按钮

用于显示任务的无序列表

下面是设置这些元素的 HTML 代码:

<h1 class="text-2xl font-bold text-center mb-4">To-Do List</h1>

<form id="task-form" class="flex justify-center mb-4">
  <input type="text" id="task-input" class="w-full p-2 rounded-lg shadow-lg">
  <button type="submit" class="p-2 rounded-full bg-blue-500 text-white">Add</button>
</form>

<ul id="task-list" class="mx-auto w-1/2"></ul>

第 2 步:使用 CSS 设计样式

现在我们已经设置了待办事项列表应用程序的基本结构,是时候添加一些样式以使其看起来更现代和更具视觉吸引力了。 对于本教程,我们将使用流行的 CSS 框架 TAIlwind CSS 来帮助我们快速设置应用程序的样式。

首先,让我们设计表单和输入字段的样式,使它们看起来更现代、更吸引人:

/* 给form添加间距和阴影 */
form {
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* 使用一些填充和圆角边框设计输入字段*/
input {
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
}

/*使用一些填充和圆形边框为按钮设置样式 */
button {
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
}

这将为输入字段和按钮添加一些填充和圆角边框,并为表单添加框阴影。

接下来,让我们设计任务列表的样式,使其看起来更现代、更具视觉吸引力:

/* 在任务列表中添加一些间距和阴影*/
ul {
  margin-top: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* 使用一些填充和圆角边框设计任务项 */
li {
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
}

这将为任务项添加一些填充和圆角边框,并为任务列表添加框阴影。

有了这些样式,我们的待办事项列表应用程序现在应该看起来更现代、更具视觉吸引力。

第 3 步:使用 JavaScript 添加功能

现在我们已经有了待办事项列表应用程序的基本结构和样式,是时候添加一些功能以使其功能齐全了。 我们将使用 JavaScript 来处理以下任务:

向列表中添加新任务

编辑现有任务

从列表中删除任务

首先,让我们设置一些变量来保存对我们将与之交互的不同元素的引用:

// 获取对表单、输入字段和任务列表的引用
const taskForm = document.querySelector('#task-form');
const taskInput = document.querySelector('#task-input');
const taskList = document.querySelector('#task-list');


有了这些变量,我们现在可以开始向我们的待办事项列表应用程序添加功能。

要向列表中添加新任务,我们需要监听表单上的提交事件,然后创建一个包含任务内容的新列表项并将其添加到任务列表中。 这是执行此操作的代码:

// 提交表单时添加新任务
taskForm.addEventListener('submit', function(event) {
  event.preventDefault();

  //从输入域获取任务内容
  const taskContent = taskInput.value;

  // 确保任务内容不为空
  if (taskContent.trim()) {
    // 使用任务内容创建一个新的列表项
    const taskItem = document.createElement('li');
    taskItem.classList.add('task-item', 'flex', 'justify-between', 'p-2', 'rounded-lg', 'shadow-lg', 'bg-white', 'my-2');
    taskItem.innerHTML = `
      <span class="flex-1 ml-2 text-gray-800">${taskContent}</span>
      <button class="edit-btn p-1 rounded-full bg-gray-300 mr-2"><i class="fas fa-edit"></i></button>
      <button class="delete-btn p-1 rounded-full bg-red-500"><i class="fas fa-trash-alt"></i></button>
    `;

    // 将新任务项添加到任务列表
    taskList.AppendChild(taskItem);

    // 清除输入字段
    taskForm.reset();
  }
});

此代码将监听表单上的提交事件,当它发生时,它将从输入字段中获取任务内容,并使用任务内容创建一个新的列表项。 然后它将新任务项添加到任务列表并清除输入字段。

有了这段代码,我们现在可以通过在输入字段中键入并单击“添加”按钮来将新任务添加到列表中。

编辑任务

为了允许用户编辑现有任务,我们需要监听编辑按钮上的点击事件,然后用输入字段替换任务文本。 然后用户可以编辑任务文本并单击更新按钮以保存更改。 这是执行此操作的代码:

// 单击编辑按钮时编辑任务
taskList.addEventListener('click', function(event) {
  if (event.target.classList.contains('edit-btn')) {
    const taskItem = event.target.parentElement;
    const taskText = taskItem.querySelector('span').textContent;

    // 用输入字段替换任务文本
    taskItem.innerHTML = `
      <input type="text" class="w-full p-2 rounded-lg shadow-lg" value="${taskText}">
      <button class="update-btn p-1 rounded-full bg-blue-500 text-white mr-2"><i class="fas fa-check"></i></button>
      <button class="cancel-btn p-1 rounded-full bg-red-500"><i class="fas fa-times"></i></button>
    `;
  }
});

此代码将监听编辑按钮上的点击事件

删除任务

为了允许用户删除任务,我们需要监听删除按钮上的点击事件,然后从列表中删除任务。 这是执行此操作的代码:

// 单击删除按钮时删除任务
taskList.addEventListener('click', function(event) {
  if (event.target.classList.contains('delete-btn')) {
    const taskItem = event.target.parentElement;
    taskList.removeChild(taskItem);
  }
});

此代码将侦听删除按钮上的单击事件,并且在单击时将从任务列表中删除任务项。

有了这三个功能,我们的待办事项列表应用程序现在功能齐全了! 用户可以根据需要添加新任务、编辑现有任务和删除任务。

总结

在本教程中,我们学习了如何使用 HTML、CSS 和 JavaScript 从头到尾构建待办事项列表应用程序。 我们设置了 HTML 结构,使用 Tailwind CSS 设计了应用程序的样式,并使用 JavaScript 添加了功能。 有了这些技能,您现在可以构建自己的待办事项列表应用程序或自定义此应用程序以满足您的需求。

希望本教程对您有所帮助! 如果您有任何问题或意见,请随时将其留在下面的评论部分。



Tags:JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: JavaScript  点击:(6)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  Search: JavaScript  点击:(27)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11  Search: JavaScript  点击:(99)  评论:(0)  加入收藏
JavaScript 真的是在 10 天内完成的吗?
起初网景公司用了十天时间创建了一个 Java,后来它成为事实上的 Web 标准,并横扫各大编程语言榜单成为开发者最受欢迎的语言之一。近日,有开发者对 Java 的开发周期提出了质疑,以...【详细内容】
2024-01-03  Search: JavaScript  点击:(85)  评论:(0)  加入收藏
创建一个双模式跨运行时的 JavaScript 包,你学会了吗
本文将指导你发布双模式、跨运行时的 JavaScript 包。了解如何创建与 ESM 和 CommonJS 以及 Node.js、Deno 和浏览器等不同运行时兼容的库。随着 JavaScript 开发的不断发展...【详细内容】
2023-12-27  Search: JavaScript  点击:(159)  评论:(0)  加入收藏
五种在 JavaScript 中创建对象的方法
在 JavaScript 中,对象是多功能工具,可以通过多种方式创建,每种方式适合不同的场景。了解何时使用每种方法是编写高效且可维护的 JavaScript 代码的关键。让我们探讨在 JavaScr...【详细内容】
2023-11-23  Search: JavaScript  点击:(239)  评论:(0)  加入收藏
GitHub:程序员正积极使用 AI 编程、JavaScript 语言依然最流行
IT之家 11 月 20 日消息,GitHub 发布了 2023 年度 Octoverse 开源状态报告,其中主要强调了 AI 在开发过程中的作用,并围绕云和 Git 的开源活动展开。官方介绍称,今年的三大趋势...【详细内容】
2023-11-20  Search: JavaScript  点击:(171)  评论:(0)  加入收藏
通过示例解释所有 JavaScript 数组方法
作为一名程序员,我们的工作是写有效的代码,但是仅仅写有效的代码,这还不够。如果想成为优秀的程序员,我们还需要编写可维护和可扩展的代码。JavaScript为我们提供了很多可以用来...【详细内容】
2023-11-15  Search: JavaScript  点击:(264)  评论:(0)  加入收藏
JavaScript 地位不保!WasmGC 将成为下一个“网红”?
整理 | 太冷不穿格子衫 出品 | 51CTO技术栈(微信号:blog51cto)早在 2017 年,主流浏览器都已经支持 WebAssembly。随着 WebAssembly 的蓬勃发展,各种编程语言也在增加对它的支持。...【详细内容】
2023-11-13  Search: JavaScript  点击:(217)  评论:(0)  加入收藏
Jest:目前最广泛使用的前端 JavaScript 测试框架
Jest 是一个简单易用的 JavaScript 测试框架。最初由 Meta 公司团队维护。2022 年 5 月,Meta 公司正式将自己的开源项目Jest 移交给 OpenJS Foundation[1],这表示 Jest 由公司...【详细内容】
2023-11-08  Search: JavaScript  点击:(341)  评论:(0)  加入收藏
▌简易百科推荐
JavaScript的异步编程常见模式
在JavaScript中,异步编程是一种处理长时间运行操作(如网络请求或I/O操作)的常见方式。它允许程序在等待这些操作完成时继续执行其他任务,从而提高应用程序的响应性和性能。JavaS...【详细内容】
2024-04-12  靳国梁    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  前端新世界  微信公众号  Tags:JavaScript   点击:(6)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  前端新世界  微信公众号  Tags:JavaScript   点击:(27)  评论:(0)  加入收藏
又出新JS运行时了!JS运行时大盘点
Node.js是基于Google V8引擎的JavaScript运行时,以非阻塞I/O和事件驱动架构为特色,实现全栈开发。它跨平台且拥有丰富的生态系统,但也面临安全性、TypeScript支持和性能等挑战...【详细内容】
2024-03-21  前端充电宝  微信公众号  Tags:JS   点击:(26)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  前端历险记  微信公众号  Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  WangLiwen    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  京东云开发者    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06    51CTO  Tags:JavaScript   点击:(53)  评论:(0)  加入收藏
JS小知识,使用这6个小技巧,避免过多的使用 if 语句
最近在重构我的代码时,我注意到早期的代码使用了太多的 if 语句,达到了我以前从未见过的程度。这就是为什么我认为分享这些可以帮助我们避免使用过多 if 语句的简单技巧很重要...【详细内容】
2024-01-30  前端达人  今日头条  Tags:JS   点击:(58)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  南城大前端  微信公众号  Tags:JavaScript   点击:(71)  评论:(0)  加入收藏
站内最新
站内热门
站内头条