0

I need to make my styles to occur one after another after some interval time.

JS

element.style.cssText = "width: 400px; height:400px; background-color:blue; 
border: 1px solid green; border-radius: 10px; text-align: center; color:white; "

setInterval(function () {element.innerHTML += element.style},1000);

the styles have to be declerated in JS (not necessarily using .cssText) `

rh_a
  • 15
  • 3

3 Answers3

0

Your example code is written incorrectly.

setting element.style.cssText applies the styles from the string given.

Adding element.style to element.innerHTML will only add text into the element - not what you are looking for.

You should research how HTMLElement#style and Element#innerHTML work.

Dr. Vortex
  • 505
  • 1
  • 3
  • 16
0

Applying styles is most easily done using the classList API, rather than with innerHTML or cssText.

See comments inline:

// Create the CSS dynamically *****************
var style = document.createElement('style');
style.innerHTML =
  `.backColor { background-color:blue; }
   .width { width:50px; }
   .height { height:100px; }
   .foreColor { color:white; }`;
document.head.appendChild(style);
// *********************************************

const element = document.querySelector("div");

// Array of CSS selector names
const styles = ["backColor", "width", "height", "foreColor"];

let index = 0; // Keeps track of which style to add next

let timer = setInterval(function(){
  // If we've added all the styles
  if(index >= styles.length) { 
    clearInterval(timer); // Stop the timer
  }
  
  element.classList.add(styles[index]); // Add the next style
  index++;  // Increase the index
}, 1500);
<div>Sample Text</div>
Scott Marcus
  • 64,069
  • 6
  • 49
  • 71
-1

Most simple way is to iterate over an array containing style like this :-

const cssText = "width: 400px; height:400px; background-color:blue; 
border: 1px solid green; border-radius: 10px; text-align: center; color:white; ";
const stylesArray = cssText.split(";");
let i = 0;
let timer = setInterval(function () {
    element.style += styleArray[i++];
// or your
// element.innerHTML += styleArray[i++];
    if ( i >= stylesArray ) clearInterval(timer);
},1000);
Abhay Bisht
  • 185
  • 7