搜索
首页web前端js教程创建我的 Pokémon Collection 应用程序:本地数据、交互性和 JavaScript 事件

Creating My Pokémon Collection App: Local Data, Interactivity, and JavaScript Events

介绍

当我开始这个项目时,我的目标很简单:创建一个神奇宝贝收集应用程序,用户可以在其中探索神奇宝贝及其详细信息。通过结合 JavaScript、Node.js 和本地数据,我构建了一个交互式应用程序,允许用户查看 Pokémon 图像、能力和类型,同时通过事件侦听器、动态内容更新等提高我的技能。当我与合作伙伴一起从事这项工作时,我将专门专注于我的工作。这是它是如何组合在一起的!


项目概况

此应用程序旨在展示一系列神奇宝贝图像和统计数据,使用户可以轻松单击每个神奇宝贝以查看详细信息,并通过悬停交互在主图像和备用图像之间切换。我在本地提供 Pokémon 数据,这使我能够专注于如何渲染、更新应用程序本身的数据以及如何与数据交互。


使用 db.json 设置本地数据

我没有从外部 API 中提取数据,而是使用 Pokémon 数据创建了一个本地 db.json 文件,其中包括名称、类型、能力和图像路径等属性。在 http://localhost:3500/pokemon 上运行本地服务器,我可以使用 JavaScript 中的 fetch 方法获取此数据。简化的设置使我能够完全离线构建和测试应用程序。


代码演练

以下是我如何处理该项目的关键部分。

  1. 获取数据: 第一步是从本地服务器获取神奇宝贝数据。我创建了一个 getAllPokemon 函数来处理获取请求并以 JSON 格式返回 Pokémon 详细信息。
   function getAllPokemon() {
     return fetch(pokemonURL).then(response => response.json());
   }

此函数从 http://localhost:3500/pokemon 获取 Pokémon 数据,然后我用它来动态渲染每个 Pokémon。

  1. 显示神奇宝贝: 为了填充集合,我使用了 displayPokemons 函数,该函数迭代获取的 Pokémon 数据并将每个项目呈现为图像。我还在每个图像上添加了一个单击事件侦听器,该侦听器在选择时会打开 Pokémon 详细信息:
   const displayPokemons = () => {
     getAllPokemon().then(pokemonArr => {
       pokemonArr.forEach(renderPokemon);
       handleClick(pokemonArr[0]); // Display first Pokémon by default
     });
   }

renderPokemon 函数为每个 Pokémon 创建图像,添加样式,并附加单击事件以显示详细信息。

  1. 事件监听器:添加交互性 我在这个项目中使用了两种主要类型的事件侦听器:用于添加新神奇宝贝的表单提交侦听器和用于在图像之间切换的鼠标悬停/鼠标悬停事件。这些听众使应用程序更具吸引力和用户友好性。
  • 表格提交:

    为了添加新的 Pokémon,我在表单上设置了一个提交侦听器,该监听器从输入字段收集值并将新的 Pokémon 添加到集合中。这个新的神奇宝贝无需刷新页面即可渲染:

       function getAllPokemon() {
         return fetch(pokemonURL).then(response => response.json());
       }
    

    这里,event.preventDefault() 会阻止表单重新加载页面,确保流畅的用户体验。

  • 替代图像的鼠标悬停事件

    当用户将鼠标悬停在详细信息部分中的神奇宝贝图像上时,它会切换到替代图像,模拟进化或转变。 mouseover 事件会触发此开关,而 mouseout 则会将其恢复:

       const displayPokemons = () => {
         getAllPokemon().then(pokemonArr => {
           pokemonArr.forEach(renderPokemon);
           handleClick(pokemonArr[0]); // Display first Pokémon by default
         });
       }
    

    这种效果为用户提供了一种有趣的方式与每个神奇宝贝互动并直观地探索其特征。


挑战和学习点

一个挑战是构造 JavaScript 以保持其模块化和可管理性,因为事件侦听器和动态元素很快就会变得难以跟踪。我学会了将代码划分为更小的函数,并有选择地使用事件侦听器来优化性能和可读性。


总结

这个神奇宝贝收集项目是应用 JavaScript、尝试本地数据获取以及添加引人入胜的事件驱动交互性的令人兴奋的方式。从头开始构建这个应用程序给了我宝贵的前端和后端概念经验,让我受到启发,在未来探索更多的互动项目。

在 GitHub 上查看我的项目!:

https://github.com/kelseyroche/phase-1-project-pokemon

以上是创建我的 Pokémon Collection 应用程序:本地数据、交互性和 JavaScript 事件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在JavaScript中替换字符串字符在JavaScript中替换字符串字符Mar 11, 2025 am 12:07 AM

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

8令人惊叹的jQuery页面布局插件8令人惊叹的jQuery页面布局插件Mar 06, 2025 am 12:48 AM

利用轻松的网页布局:8个基本插件 jQuery大大简化了网页布局。 本文重点介绍了简化该过程的八个功能强大的JQuery插件,对于手动网站创建特别有用

构建您自己的Ajax Web应用程序构建您自己的Ajax Web应用程序Mar 09, 2025 am 12:11 AM

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

10个JQuery Fun and Games插件10个JQuery Fun and Games插件Mar 08, 2025 am 12:42 AM

10款趣味横生的jQuery游戏插件,让您的网站更具吸引力,提升用户粘性!虽然Flash仍然是开发休闲网页游戏的最佳软件,但jQuery也能创造出令人惊喜的效果,虽然无法与纯动作Flash游戏媲美,但在某些情况下,您也能在浏览器中获得意想不到的乐趣。 jQuery井字棋游戏 游戏编程的“Hello world”,现在有了jQuery版本。 源码 jQuery疯狂填词游戏 这是一个填空游戏,由于不知道单词的上下文,可能会产生一些古怪的结果。 源码 jQuery扫雷游戏

如何创建和发布自己的JavaScript库?如何创建和发布自己的JavaScript库?Mar 18, 2025 pm 03:12 PM

文章讨论了创建,发布和维护JavaScript库,专注于计划,开发,测试,文档和促销策略。

使用AJAX动态加载盒内容使用AJAX动态加载盒内容Mar 06, 2025 am 01:07 AM

本教程演示了创建通过Ajax加载的动态页面框,从而可以即时刷新,而无需全页重新加载。 它利用jQuery和JavaScript。将其视为自定义的Facebook式内容框加载程序。 关键概念: Ajax和JQuery

jQuery视差教程 - 动画标题背景jQuery视差教程 - 动画标题背景Mar 08, 2025 am 12:39 AM

本教程演示了如何使用jQuery创建迷人的视差背景效果。 我们将构建一个带有分层图像的标题横幅,从而创造出令人惊叹的视觉深度。 更新的插件可与JQuery 1.6.4及更高版本一起使用。 下载

如何为JavaScript编写无曲奇会话库如何为JavaScript编写无曲奇会话库Mar 06, 2025 am 01:18 AM

此JavaScript库利用窗口。名称属性可以管理会话数据,而无需依赖cookie。 它为浏览器中存储和检索会话变量提供了强大的解决方案。 库提供了三种核心方法:会话

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境