首頁 web前端 js教程 創建我的 Pokémon Collection 應用程式:本地資料、互動性和 JavaScript 事件

創建我的 Pokémon Collection 應用程式:本地資料、互動性和 JavaScript 事件

Nov 17, 2024 pm 04:08 PM

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

前端熱敏紙小票打印遇到亂碼問題怎麼辦? 前端熱敏紙小票打印遇到亂碼問題怎麼辦? Apr 04, 2025 pm 02:42 PM

前端熱敏紙小票打印的常見問題與解決方案在前端開發中,小票打印是一個常見的需求。然而,很多開發者在實...

神秘的JavaScript:它的作用以及為什麼重要 神秘的JavaScript:它的作用以及為什麼重要 Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

誰得到更多的Python或JavaScript? 誰得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何實現視差滾動和元素動畫效果,像資生堂官網那樣?
或者:
怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? 如何實現視差滾動和元素動畫效果,像資生堂官網那樣? 或者: 怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? Apr 04, 2025 pm 05:36 PM

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript難以學習嗎? JavaScript難以學習嗎? Apr 03, 2025 am 12:20 AM

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

JavaScript的演變:當前的趨勢和未來前景 JavaScript的演變:當前的趨勢和未來前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? 如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

Zustand異步操作:如何確保useStore獲取的最新狀態? Zustand異步操作:如何確保useStore獲取的最新狀態? Apr 04, 2025 pm 02:09 PM

zustand異步操作中的數據更新問題在使用zustand狀態管理庫時,經常會遇到異步操作導致數據更新不及時的問題。 �...

See all articles