I am trying to get the effect of a "revolving door" of words coming on to my wixsite, only to be replaced by the next word.
I am thinking the way to do this is to have an array in javascript of the words I want to come on, and then loop through that array, bringing each word on to the screen using my chosen animation for text.
I have code that takes a word, and "typewrites" it on to my wix site, but how can i adapt it to do the same for many words, one after another exits the screen (almost like a slideshow of words being typed on?)
here is my code:
> import wixData from 'wix-data';
>
> let interval; let timeInterval = 350; let typeStr = "Invest"; let
> typeIdx; let htmlStr = ''; let displayStr;
>
> $w.onReady(function () {
// Get the original html string, and split it into two pieces.
// In the process, remove the separator !##!
// By saving the original html, we preserve the style of the text to display.
if (htmlStr.length === 0) { // just get the original html text the first time
htmlStr = $w("#typewriterPage").html;
}
$w("#typewriterPage").html = ''; // don't show the original text
let strPieces = htmlStr.split("!##!");
displayStr = ''; // init string that we will "type" to
typeIdx = 0; // start at beginning of string we want to "type"
// Declare an interval function that will run in the background.
// This function will be triggered by the defined timeInterval.
interval = setInterval(function () {
// Get next char from string to be typed and concatenate to the display string.
displayStr = displayStr + typeStr[typeIdx++];
// Make a sandwich with the display string in between the original html pieces.
$w("#typewriterPage").html = strPieces[0] + displayStr + strPieces[1];
// Stop the interval from running when we get to the last character to by "typed".
if (typeIdx === typeStr.length) clearInterval(interval);
}, timeInterval);
});