Classic NES Controller
Info
Created On: April 13, 2023
Created By:
AI
Model: gpt-4-0314
Time: 161.04977750778 seconds
Prompt Tokens: 800
Completion Tokens: 1088
Total Token Cost: 1888
Get This App On Your Website
Copy Code
1. Copy the code above with the iframe and link.
2. Paste the code into your website.
3. Resize the iframe to fit your website.
Javascript, HTML, CSS Code
Copy
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript"> window.addEventListener('error', function(event) { var message = JSON.parse(JSON.stringify(event.message)); var source = event.filename; var lineno = event.lineno; var colno = event.colno; var error = event.error; window.parent.postMessage({ type: 'iframeError', details: { message: message, source: source, lineno: lineno, colno: colno, error: error ? error.stack : '' } }, '*'); }); window.addEventListener('unhandledrejection', function(event) { window.parent.postMessage({ type: 'iframePromiseRejection', details: { reason: event.reason } }, '*'); }); </script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Classic NES Controller</title>
<meta name="description" content="A classic NES controller web app with interactive buttons.">
<meta name="keywords" content="NES, controller, classic, interactive, buttons">
<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">
<!-- Built-In Functions for Apps -->
<script type="text/javascript">
var localStoragePrefix = "ct-16814279653171";
var lastSave = 0;
// save to localstorage
function saveLocal(data) {
if (Date.now() - lastSave < 1000) {
return;
}
// save to cookie
let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict";
cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString();
document.cookie = cookie;
lastSave = Date.now();
}
// load from localstorage
function loadLocal() {
var cookiePrefix = localStoragePrefix + "=";
var cookieStart = document.cookie.indexOf(cookiePrefix);
if (cookieStart > -1) {
let cookieEnd = document.cookie.indexOf(";", cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd);
return JSON.parse(cookieData);
}
}
</script>
<script type="text/javascript">
// App Javascript Goes Here
function buttonPress(buttonId) {
var button = document.getElementById(buttonId);
button.classList.add("pressed");
setTimeout(function () {
button.classList.remove("pressed");
}, 100);
}
</script>
<style>
/* App CSS Goes Here */
body {
background-color: #222;
font-family: "Press Start 2P", cursive;
}
#nes-controller {
display: flex;
flex-direction: column;
align-items: center;
background-color: #333;
width: 400px;
height: 200px;
margin: 50px auto;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.button-row {
display: flex;
justify-content: center;
margin-bottom: 10px;
}
.nes-button {
width: 40px;
height: 40px;
margin: 5px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
user-select: none;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.nes-button.pressed {
transform: scale(0.9);
box-shadow: none;
}
.nes-button.red {
background-color: #f00;
}
.nes-button.yellow {
background-color: #ff0;
}
.nes-button.blue {
background-color: #00f;
}
.nes-button.green {
background-color: #0f0;
}
</style>
<link rel="canonical" href="https://calculator.tools/prompt/354/">
<meta charset="utf-8">
</head>
<body>
<div id="main-container" class="container">
<!-- App HTML Goes Here -->
<div id="nes-controller">
<div class="button-row">
<div id="red-button" class="nes-button red" onmousedown="buttonPress('red-button')"></div>
<div id="yellow-button" class="nes-button yellow" onmousedown="buttonPress('yellow-button')"></div>
</div>
<div class="button-row">
<div id="blue-button" class="nes-button blue" onmousedown="buttonPress('blue-button')"></div>
<div id="green-button" class="nes-button green" onmousedown="buttonPress('green-button')"></div>
</div>
</div>
</div>
<script type="text/javascript"> var localStoragePrefix = "ct-{{ cachebreaker }}"; var lastSave = 0; function saveLocal(data) { if (Date.now() - lastSave < 1000) { return; } let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict"; cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString(); document.cookie = cookie; lastSave = Date.now(); } function loadLocal() { var cookiePrefix = localStoragePrefix + "="; var cookieStart = document.cookie.indexOf(cookiePrefix); if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd); return JSON.parse(cookieData); } } </script>
<script type="text/javascript"> window.addEventListener('load', function() { var observer = new MutationObserver(function() { window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); observer.observe(document.body, {attributes: true, childList: true, subtree: true}); window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); </script>
</body>
</html>