web-dev-qa-db-fra.com

Exécution de JavaScript après X secondes

Je construis une page interstitielle, en utilisant <div> et JavaScript, un script vraiment simple mais soigné.

Tout fonctionne, mais je voudrais également fermer les div après quelques secondes (comme 10 secondes, par exemple). Voici ce que j'ai jusqu'à présent:

  • J'ai deux div, 1 et 2.
  • J'ai la configuration CSS pour div 1 comme: display: none; (div 1 a le contenu de l'écran de démarrage)
  • Div 2 est le calque qui couvrira la page et ne laissera visible que div 1.

Pour charger les div, j'ai une fonction onload comme celle-ci:

onload="document.getElementById('div1').style.display='block';document.getElementById('div2').style.display='block'"

Pour masquer les divs, j'ai une fonction onclick comme celle-ci:

<a href = "javascript:void(0)" onclick = "document.getElementById('div1').style.display='none';document.getElementById('div2').style.display='none'"></a>

Comment puis-je exécuter la fonction onclick avec une minuterie, et comment puis-je le faire? Il doit également être en JavaScript.

41
Paulo Capelo

Je crois que vous recherchez la fonction setTimeout .

Pour rendre votre code un peu plus net, définissez une fonction distincte pour onclick dans un <script> bloc:

function myClick() {
  setTimeout(
    function() {
      document.getElementById('div1').style.display='none';
      document.getElementById('div2').style.display='none';
    }, 5000);
}

puis appelez votre fonction à partir de onclick

onclick="myClick();"
76
Strelok

setTimeout vous aidera à exécuter n'importe quel code JavaScript en fonction de l'heure que vous avez définie.

Syntaxe

setTimeout(code, millisec, lang)

Usage,

setTimeout("function1()", 1000);

Pour plus de détails, voir http://www.w3schools.com/jsref/met_win_settimeout.asp

7
onclick = "setTimeout(function() { document.getElementById('div1').style.display='none';document.getElementById('div2').style.display='none'}, 1000)"

Remplacez 1000 par le nombre de millisecondes que vous souhaitez retarder.

4
Dogbert