<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DOS Style Typing Animation</title>
<style>
:root {
--background-color: black;
--text-color: lime;
--font-family: "Courier New", Courier, monospace;
--cursor-width: 10px;
--cursor-height: 20px;
--cursor-blink-speed: 0.5s;
}
body {
background-color: var(--background-color);
color: var(--text-color);
font-family: var(--font-family);
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
#console {
font-size: 1.5rem;
white-space: pre-wrap;
overflow-wrap: break-word;
max-width: 90%;
position: relative;
}
.cursor {
display: inline-block;
width: var(--cursor-width);
height: var(--cursor-height);
background-color: var(--text-color);
animation: blink var(--cursor-blink-speed) step-end infinite alternate;
}
@keyframes blink {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
/* Scoped Styling */
#console-wrapper {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="console-wrapper">
<div id="console">
<span id="text"></span><span class="cursor"></span>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
const textElement = document.getElementById("text");
const cursorElement = document.querySelector(".cursor");
const text = `Let us design a customized 360 degree virtual tour for your business or enterprise, protect your business from lockdowns, bring your business into the new A.I age.`;
let index = 0;
function typeEffect() {
if (index < text.length) {
textElement.textContent += text[index];
index++;
setTimeout(typeEffect, 50); // Adjust speed here (lower = faster, higher = slower)
}
}
// Start the typing effect
typeEffect();
});
</script>
</body>
</html>