Pokédex
About this app
Pokédex - Display Pokémon information based on the National Dex number
Pokédex Pokédex Enter a number between 1 and 1025 to display information about a Pokémon:
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Pokédex</title>
<meta name="description" content="Pokédex - Display Pokémon information based on the National Dex number">
<meta name="keywords" content="Pokédex, Pokémon, National Dex, Pokémon information">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Get the input element
var input = document.getElementById("pokemon-input");
// Add event listener for input change
input.addEventListener("input", function() {
// Get the entered number
var number = parseInt(input.value);
// Clear the previous result
document.getElementById("pokemon-details").innerHTML = "";
// Check if the entered number is within the valid range
if (number >= 1 && number <= 1025) {
// Fetch Pokémon data from API
fetchPokemonData(number);
}
});
});
// Function to fetch Pokémon data from API
function fetchPokemonData(number) {
// API endpoint URL
var apiUrl = "https://pokeapi.co/api/v2/pokemon/" + number;
// Fetch Pokémon data
fetch(apiUrl)
.then(function(response) {
return response.json();
})
.then(function(data) {
// Extract required data from the response
var name = data.name;
var imageUrl = data.sprites.front_default;
var baseExperience = data.base_experience;
var height = data.height;
var weight = data.weight;
var stats = data.stats;
var gameIndex = data.game_indices[0].game_index;
// Create the Pokémon details HTML
var pokemonDetailsHTML = `
<div class="card">
<img src="${imageUrl}" class="card-img-top" alt="${name}">
<div class="card-body">
<h5 class="card-title">${name}</h5>
<p class="card-text">Dex Entry: ${getDexEntry(gameIndex)}</p>
<p class="card-text">Base Stats:</p>
<ul>
<li>Total: ${getTotalBaseStats(stats)}</li>
<li>HP: ${getBaseStatValue(stats, "hp")}</li>
<li>Attack: ${getBaseStatValue(stats, "attack")}</li>
<li>Defense: ${getBaseStatValue(stats, "defense")}</li>
<li>Sp. Attack: ${getBaseStatValue(stats, "special-attack")}</li>
<li>Sp. Defense: ${getBaseStatValue(stats, "special-defense")}</li>
<li>Speed: ${getBaseStatValue(stats, "speed")}</li>
</ul>
</div>
</div>
`;
// Display the Pokémon details
document.getElementById("pokemon-details").innerHTML = pokemonDetailsHTML;
})
.catch(function(error) {
console.log("Error:", error);
});
}
// Function to get the Dex entry for a Pokémon
function getDexEntry(gameIndex) {
// API endpoint URL for Pokémon species data
var apiUrl = "https://pokeapi.co/api/v2/pokemon-species/" + gameIndex;
// Fetch Pokémon species data
return fetch(apiUrl)
.then(function(response) {
return response.json();
})
.then(function(data) {
// Extract the English Dex entry from the response
var dexEntry = data.flavor_text_entries.find(entry => entry.language.name === "en").flavor_text;
return dexEntry;
})
.catch(function(error) {
console.log("Error:", error);
});
}
// Function to calculate the total base stats of a Pokémon
function getTotalBaseStats(stats) {
var total = 0;
// Loop through each stat and add its base value to the total
stats.forEach(function(stat) {
total += stat.base_stat;
});
return total;
}
// Function to get the base stat value for a specific stat
function getBaseStatValue(stats, statName) {
// Find the stat object with the given name
var stat = stats.find(function(stat) {
return stat.stat.name === statName;
});
// Return the base value of the stat
return stat.base_stat;
}
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
body {
background-color: #f8fafc;
font-family: 'Roboto', sans-serif;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 24px;
}
.card {
width: 100%;
background-color: #fff;
border-radius: 8px;
padding: 16px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
}
.card-img-top {
width: 100%;
max-height: 200px;
object-fit: cover;
border-radius: 8px;
}
.card-title {
font-size: 24px;
font-weight: bold;
margin-bottom: 8px;
}
.card-text {
margin-bottom: 4px;
}
ul {
padding-left: 16px;
}
li {
margin-bottom: 4px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Pokédex</h1>
<p>Enter a number between 1 and 1025 to display information about a Pokémon:</p>
<input id="pokemon-input" type="number" min="1" max="1025" class="form-control" placeholder="Enter a number">
<div id="pokemon-details"></div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!