No! Unacceptable! - Fun Animation Web App
About this app
Engage with an interactive and colorful web app that reacts to user frustration with fun animations and praises user engagement.
No! Unacceptable! - Fun Animation Web App Feeling Frustrated? No! That's Unacceptable!
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>No! Unacceptable! - Fun Animation Web App</title>
<meta name="description" content="Engage with an interactive and colorful web app that reacts to user frustration with fun animations and praises user engagement.">
<meta name="keywords" content="animation, fun app, interactive web app, user engagement, colorful, responsive">
<!-- Libraries -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css" crossorigin="anonymous">
<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() {
const unacceptableButton = document.getElementById("unacceptable-btn");
const responseText = document.getElementById("response-text");
unacceptableButton.addEventListener("click", function() {
responseText.innerHTML = `<span class="text-danger fw-bold">No!</span> <span class="text-warning">That's Unacceptable!</span>`;
responseText.classList.add("animateResponse");
});
const rerunAnimation = () => {
responseText.classList.remove("animateResponse");
void responseText.offsetWidth; // trigger reflow
responseText.classList.add("animateResponse");
}
responseText.addEventListener("animationend", () => {
responseText.classList.remove("animateResponse");
});
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
body {
background: linear-gradient(180deg, #68a0cf, #f5aa82);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
flex-direction: column;
font-family: Arial, sans-serif;
}
#response-text {
font-size: 2rem;
margin-top: 20px;
transition: opacity 0.5s;
}
#unacceptable-btn {
padding: 20px;
font-size: 1.5rem;
background: #ff6f61;
border: none;
border-radius: 8px;
cursor: pointer;
color: white;
transition: transform 0.2s;
}
#unacceptable-btn:hover {
transform: scale(1.1);
}
.animateResponse {
animation: shake 0.5s ease;
}
@keyframes shake {
0% { transform: translateX(0); }
25% { transform: translateX(-10px); }
50% { transform: translateX(10px); }
75% { transform: translateX(-10px); }
100% { transform: translateX(0); }
}
</style>
</head>
<body>
<div id="main-container" class="container text-center">
<h1 class="display-4">Feeling Frustrated?</h1>
<button id="unacceptable-btn">No! That's Unacceptable!</button>
<div id="response-text"></div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!