catboy-spinner/index.html

77 lines
1.7 KiB
HTML
Raw Permalink Normal View History

2024-10-04 20:11:17 -03:00
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
2024-10-05 00:25:48 -03:00
<title>Catboy Spinner</title>
2024-10-04 20:11:17 -03:00
<style>
.col {
display: flex;
flex-direction: column;
gap: 10px;
margin: auto;
max-width: 900px;
background: #7eb0ff;
}
* {
text-align: center;
color: #fff;
}
h1 {
font-family: sans;
}
#catboy {
max-width: 80vw;
2024-10-05 00:21:50 -03:00
max-height: 70vh;
2024-10-04 20:11:17 -03:00
object-fit: contain;
2024-10-04 20:19:54 -03:00
scale: calc(1 / sqrt(2));
2024-10-04 20:11:17 -03:00
}
</style>
</head>
<body>
<div class="col">
<h1>Catboy spinner</h1>
<img src="catboy.png" alt="" id="catboy" />
<p><span id="rpm">0</span> RPM</p>
2024-10-05 00:21:50 -03:00
<p>High score: <span id="high">0</span> RPM</p>
2024-10-04 20:11:17 -03:00
</div>
<script>
const catboyImage = document.getElementById("catboy");
const rpmIndiCATor = document.getElementById("rpm");
2024-10-05 00:21:50 -03:00
const highScore = document.getElementById("high");
2024-10-04 20:11:17 -03:00
2024-10-05 00:21:50 -03:00
let rpm = 0;
2024-10-04 20:11:17 -03:00
let rot = 0;
2024-10-05 00:21:50 -03:00
let high = 0;
2024-10-04 20:11:17 -03:00
setInterval(() => {
catboyImage.style.rotate = `${rot}deg`;
rot += rpm / 60;
while (rot > 360) {
rot -= 360;
}
}, 1000 / 60);
setInterval(() => {
if (rpm > 0) rpm -= rpm / 100;
rpmIndiCATor.innerHTML = Math.floor(rpm);
}, 10);
catboyImage.onclick = () => {
rpm += 300;
2024-10-05 00:21:50 -03:00
if (rpm > high) {
high = rpm;
highScore.innerHTML = Math.floor(rpm);
highScore.style.color = "yellow";
} else {
highScore.style.color = '';
}
2024-10-04 20:11:17 -03:00
};
</script>
</body>
</html>