Demo: https://codepen.io/hckkiu/pen/xxYbYQb
Tested on 7.1.
Add a Code Block > Use this code (With Personal Plan, you can add via Markdown Block)
<div class="tp-container">
<p class="tp-typewriter">I'm a
<span data-text="web developer., designer., photographer."></span>
</p>
</div>
<style>
.tp-container {
--bg-color: #2E3D4B;
--text-color: #6AE3FF;
}
.tp-container {
min-width: 400px;
height: 100vh;
align-items: center;
box-sizing: border-box;
background: var(--bg-color);
padding: 50px;
}
.tp-typewriter {
font-size: 56px;
color: #fff;
font-weight: bold;
position: relative;
margin: 0;
top: 50%;
transform: translateY(-50%);
}
.tp-typewriter span {
color: var(--text-color);
text-transform: uppercase;
padding: 10px;
border-right: solid var(--text-color) 10px;
animation: cursor 1s ease-in-out infinite;
}
@keyframes cursor {
from { border-color: var(--text-color); }
to { border-color: transparent; }
}
@media (max-width: 576px) {
.tp-typewriter { font-size: 24px; }
}
@media (max-width: 768px) {
.tp-typewriter { font-size: 36px; }
}
</style>
<script>
var span = document.querySelector(".tp-typewriter span");
var textArr = span.getAttribute("data-text").split(", ");
var maxTextIndex = textArr.length;
var sPerChar = 0.15;
var sBetweenWord = 1.5;
var textIndex = 0;
typing(textIndex, textArr[textIndex]);
function typing(textIndex, text) {
var charIndex = 0;
var maxCharIndex = text.length - 1;
var typeInterval = setInterval(function () {
span.innerHTML += text[charIndex];
if (charIndex == maxCharIndex) {
clearInterval(typeInterval);
setTimeout(function() { deleting(textIndex, text) }, sBetweenWord * 1000);
} else {
charIndex += 1;
}
}, sPerChar * 1000);
}
function deleting(textIndex, text) {
var minCharIndex = 0;
var charIndex = text.length - 1;
var typeInterval = setInterval(function () {
span.innerHTML = text.substr(0, charIndex);
if (charIndex == minCharIndex) {
clearInterval(typeInterval);
textIndex + 1 == maxTextIndex ? textIndex = 0 : textIndex += 1;
setTimeout(function() { typing(textIndex, textArr[textIndex]) }, sBetweenWord * 1000);
} else {
charIndex -= 1;
}
}, sPerChar * 1000);
}
</script>