JSFiddle - React, Tailwind, and code Playground
HTML
<header class="page-header">
<h1>Bananas</h1>
<h2><span>A phone</span></h2>
</header>
CSS
h2 {
opacity: 1;
transition: opacity 700ms;
}
h2.fade-out {
opacity: 0;
}
JavaScript
document.addEventListener("DOMContentLoaded", function () {
var whatAmI = ["Fruit", "Not a vegetable", "A phone", "Yummie in tummy"];
var j, i = 4,
n = whatAmI.length,
heading = document.querySelector(".page-header > h2");
function changeSubTitle() {
setTimeout(function () {
j = Math.floor(Math.random() * n - 1);
if (j >= i) j += 1;
heading.classList.add("fade-out");
setTimeout(function () {
heading.children("span")[0].innerHTML = whatAmI[j];
heading.classList.remove("fade-out");
setTimeout(changeSubTitle, 700);
}, 700);
}, 1000);
i = j;
}
changeSubTitle();
});