-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
60 lines (49 loc) · 1.77 KB
/
Copy pathscript.js
File metadata and controls
60 lines (49 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const API_URL = "https://api.freeapi.app/api/v1/public/cats/cat/random";
const catImage = document.getElementById("catImage");
const catName = document.getElementById("catName");
const catOrigin = document.getElementById("catOrigin");
const catTemperament = document.getElementById("catTemperament");
const catDescription = document.getElementById("catDescription");
const catStats = document.getElementById("catStats");
const loader = document.getElementById("loader");
const fetchBtn = document.getElementById("fetchBtn");
// Fetch Cat Data
async function fetchCat() {
loader.style.display = "block";
catImage.style.opacity = "0.5";
try {
const res = await fetch(API_URL);
const result = await res.json();
const cat = result.data;
updateUI(cat);
} catch (err) {
catName.textContent = "Failed to load cat 😿";
}
loader.style.display = "none";
catImage.style.opacity = "1";
}
// Update UI
function updateUI(cat) {
catImage.src = cat.image;
catName.textContent = cat.name;
catOrigin.textContent = `🌍 ${cat.origin}`;
// Temperament tags
catTemperament.innerHTML = "";
cat.temperament.split(",").forEach(tag => {
const span = document.createElement("span");
span.textContent = tag.trim();
catTemperament.appendChild(span);
});
catDescription.textContent = cat.description;
// Stats
catStats.innerHTML = `
<div class="stat">❤️ Affection: ${cat.affection_level}/5</div>
<div class="stat">⚡ Energy: ${cat.energy_level}/5</div>
<div class="stat">🧠 Intelligence: ${cat.intelligence}/5</div>
<div class="stat">🐶 Dog Friendly: ${cat.dog_friendly}/5</div>
`;
}
// Button click
fetchBtn.addEventListener("click", fetchCat);
// Initial load
fetchCat();