rroro / index.html
victor's picture
victor HF Staff
Add index.html
acacfe2 verified
raw
history blame
11.5 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Ultimate Poo Button Experience</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Comic+Neue:wght@700&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #f5f5dc;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
font-family: 'Comic Neue', cursive;
overflow-x: hidden;
position: relative;
}
h1 {
color: #8B4513;
margin-bottom: 30px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
font-size: 2.5rem;
text-align: center;
}
.poo-container {
display: flex;
flex-direction: column;
align-items: center;
}
.poo-button {
width: 150px;
height: 150px;
background-color: #d4a017;
border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
display: flex;
justify-content: center;
align-items: center;
font-size: 80px;
cursor: pointer;
user-select: none;
position: relative;
box-shadow: 0 10px 20px rgba(0,0,0,0.2),
inset 0 -10px 20px rgba(0,0,0,0.1),
inset 0 5px 10px rgba(255,255,255,0.3);
transition: transform 0.1s;
margin-bottom: 30px;
filter: drop-shadow(0 0 5px rgba(139, 69, 19, 0.4));
overflow: hidden;
}
.poo-button:hover {
transform: scale(1.05);
}
.poo-button:active {
transform: scale(0.95) rotate(5deg);
}
.poo-button::after {
content: '';
position: absolute;
width: 120px;
height: 60px;
background-color: #8B4513;
border-radius: 50%;
top: 30px;
filter: blur(10px);
opacity: 0.3;
}
.counter {
font-size: 1.5rem;
color: #8B4513;
margin-top: 20px;
background-color: rgba(255,255,255,0.7);
padding: 10px 20px;
border-radius: 20px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.floating-poo {
position: absolute;
font-size: 30px;
pointer-events: none;
opacity: 0;
animation: float-up 1.5s forwards;
filter: drop-shadow(0 0 2px rgba(0,0,0,0.3));
}
@keyframes float-up {
0% {
transform: translateY(0);
opacity: 1;
}
100% {
transform: translateY(-150px) rotate(360deg);
opacity: 0;
}
}
.controls {
margin-top: 30px;
display: flex;
gap: 15px;
}
.volume-control {
display: flex;
align-items: center;
background-color: rgba(255,255,255,0.7);
padding: 10px 15px;
border-radius: 30px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.volume-control label {
margin-right: 10px;
color: #8B4513;
}
input[type="range"] {
accent-color: #d4a017;
}
.instructions {
margin-top: 20px;
background-color: rgba(255,255,255,0.7);
padding: 15px;
border-radius: 10px;
max-width: 500px;
text-align: center;
color: #8B4513;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
line-height: 1.5;
}
.streak {
font-size: 1.2rem;
margin-top: 15px;
color: #d4a017;
text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}
@media (max-width: 600px) {
.poo-button {
width: 120px;
height: 120px;
font-size: 60px;
}
h1 {
font-size: 1.8rem;
}
}
</style>
</head>
<body>
<h1>The Ultimate Poo Button Experience 💩</h1>
<div class="poo-container">
<div class="poo-button" id="pooButton">💩</div>
<div class="counter" id="counter">Poo Count: 0</div>
<div class="streak" id="streak">Current streak: 0 clicks per second</div>
</div>
<div class="controls">
<div class="volume-control">
<label for="volume">Volume:</label>
<input type="range" id="volume" name="volume" min="0" max="1" step="0.1" value="0.5">
</div>
</div>
<div class="instructions">
<p>Click the poo button as many times as you can! Try to beat your high score.<br>
The more you click, the more floating poos you'll create!</p>
</div>
<script>
const pooButton = document.getElementById('pooButton');
const counterElement = document.getElementById('counter');
const volumeControl = document.getElementById('volume');
const streakElement = document.getElementById('streak');
let counter = 0;
let lastClickTime = 0;
let streakCount = 0;
// Preload fart sounds
const fartSounds = [
new Audio('https://assets.mixkit.co/active_storage/sfx/153/153-preview.mp3'),
new Audio('https://assets.mixkit.co/active_storage/sfx/154/154-preview.mp3'),
new Audio('https://assets.mixkit.co/active_storage/sfx/155/155-preview.mp3')
];
// Set volume for all sounds
fartSounds.forEach(sound => {
sound.volume = volumeControl.value;
});
// Update volume when slider changes
volumeControl.addEventListener('input', () => {
const volume = volumeControl.value;
fartSounds.forEach(sound => {
sound.volume = volume;
});
});
pooButton.addEventListener('click', () => {
// Increment counter
counter++;
counterElement.textContent = `Poo Count: ${counter}`;
// Play random fart sound
const randomSound = Math.floor(Math.random() * fartSounds.length);
fartSounds[randomSound].currentTime = 0;
fartSounds[randomSound].play();
// Create floating poo
createFloatingPoo();
// Streak calculation
const currentTime = Date.now();
const timeDiff = currentTime - lastClickTime;
if (timeDiff < 500) { // If clicked within 0.5 seconds
streakCount++;
} else {
streakCount = 1; // Reset streak
}
streakElement.textContent = `Current streak: ${streakCount} clicks per second`;
// Update last click time
lastClickTime = currentTime;
// Special effects every 10 clicks
if (counter % 10 === 0) {
pooButton.style.animation = 'none';
void pooButton.offsetWidth; // Trigger reflow
pooButton.style.animation = 'jiggle 0.5s';
// Create multiple poos
setTimeout(() => {
for (let i = 0; i < 5; i++) {
createFloatingPoo();
}
}, 200);
}
});
function createFloatingPoo() {
const poo = document.createElement('div');
poo.className = 'floating-poo';
poo.textContent = '💩';
// Random position around the button
const left = Math.random() * 100 - 50 + pooButton.offsetLeft + pooButton.offsetWidth / 2;
poo.style.left = `${left}px`;
poo.style.top = `${pooButton.offsetTop + pooButton.offsetHeight / 2}px`;
// Random animation duration and delay
poo.style.animationDuration = `${0.5 + Math.random() * 1.5}s`;
poo.style.animationDelay = `${Math.random() * 0.3}s`;
document.body.appendChild(poo);
// Remove after animation
setTimeout(() => {
poo.remove();
}, 1500);
}
// Easter egg - long press
let pressTimer;
pooButton.addEventListener('mousedown', () => {
pressTimer = setTimeout(() => {
// Big surprise effect
for (let i = 0; i < 20; i++) {
setTimeout(() => {
createFloatingPoo();
}, i * 50);
}
// Play all fart sounds at once
fartSounds.forEach(sound => {
sound.currentTime = 0;
sound.play();
});
// Counter bonus
counter += 5;
counterElement.textContent = `Poo Count: ${counter}`;
// Visual feedback
pooButton.style.transform = 'scale(1.2) rotate(20deg)';
}, 1000);
});
pooButton.addEventListener('mouseup', () => {
clearTimeout(pressTimer);
});
pooButton.addEventListener('mouseleave', () => {
clearTimeout(pressTimer);
});
// Mobile touch support
pooButton.addEventListener('touchstart', (e) => {
e.preventDefault();
pressTimer = setTimeout(() => {
// Big surprise effect
for (let i = 0; i < 20; i++) {
setTimeout(() => {
createFloatingPoo();
}, i * 50);
}
// Play all fart sounds at once
fartSounds.forEach(sound => {
sound.currentTime = 0;
sound.play();
});
// Counter bonus
counter += 5;
counterElement.textContent = `Poo Count: ${counter}`;
// Visual feedback
pooButton.style.transform = 'scale(1.2) rotate(20deg)';
}, 1000);
});
pooButton.addEventListener('touchend', (e) => {
e.preventDefault();
clearTimeout(pressTimer);
});
</script>
<p style="text-align: center; font-size: 12px; color: #888; margin-top: 16px;">This website has been generated by <a href="https://enzostvs-deepsite.hf.space" target="_blank">DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p></body>
</html>