3

Below is some js that i have no idea how to modify to do what i want. Instead of onclick i need the js to activate after a delay of 40 seconds.

// retrieve the element
element = document.getElementById("ani");

// reset the transition by...
element.addEventListener("click", function(e){
e.preventDefault;

// -> removing the class
element.classList.remove("delay-1");

// -> triggering reflow /* The actual magic */
// without this it wouldn't work. Try uncommenting the line and the transition won't be         retriggered.
element.offsetWidth = element.offsetWidth;

// -> and re-adding the class
element.classList.add("delay-1");
}, false);
user2810762
  • 375
  • 6
  • 12

3 Answers3

8

Use setTimeout to invoke a method/task after a specified number of milliseconds.

setTimeout(function() {
    //your code/function here
}, (40*1000)); //40 seconds
lshettyl
  • 8,166
  • 4
  • 25
  • 31
0

Use the function setTimeout.

as seen in e.g. How do I delay a function call for 5 seconds?

In your case:

// retrieve the element
element = document.getElementById("ani");

// reset the transition by...
element.addEventListener("click", function(e){
  e.preventDefault;

  //introducing a delay of 40 seconds.
  setTimeout(function() {
    // -> removing the class
    element.classList.remove("delay-1");

    // -> triggering reflow /* The actual magic */
    // without this it wouldn't work. Try uncommenting the line and the transition won't be         retriggered.
    element.offsetWidth = element.offsetWidth;

    // -> and re-adding the class
    element.classList.add("delay-1");
  }, 40 * 1000);
}, false);
Community
  • 1
  • 1
Oskar
  • 134
  • 2
  • 8
0

use setTimeout function:

setTimeout(function() {
    // retrieve the element
    element = document.getElementById("ani");

    // reset the transition by...
    element.addEventListener("click", function(e){
    e.preventDefault;

    // -> removing the class
    element.classList.remove("delay-1");

    // -> triggering reflow /* The actual magic */
    // without this it wouldn't work. Try uncommenting the line and the transition won't be retriggered.
    element.offsetWidth = element.offsetWidth;

    // -> and re-adding the class
    element.classList.add("delay-1");
    }, false);
}, 40000);
Karim AG
  • 2,166
  • 15
  • 29