IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Optimiser ma fonction compte à rebours


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 53
    Par défaut Optimiser ma fonction compte à rebours
    Bonjour, j'espère que vous allez bien!

    Voilà j'aimerai optimiser ma fonction, en utilisant une boucle ou la recursivité.
    quand j'utilise la boucle, elle ne lit pas mon setTimeout...
    avec la récursivité j'ai un petit sous cas ma fonction est déclencher au clique d'un button qui à en attribut un onclick et en valeur une fonction sans paramètre.

    Voici mon code js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
      function tempsJoueur() {
    let temps = document.getElementById("time");
    setTimeout(function(){ temps.textContent=temps.value=" 00 " }, 30000);
    setTimeout(function(){ temps.textContent=temps.value=" 01 " }, 29000);
    setTimeout(function(){ temps.textContent=temps.value=" 02 " }, 28000);
    setTimeout(function(){ temps.textContent=temps.value=" 03 " }, 27000);
    setTimeout(function(){ temps.textContent=temps.value=" 04 " }, 26000);
    setTimeout(function(){ temps.textContent=temps.value=" 05 " }, 25000);
    setTimeout(function(){ temps.textContent=temps.value=" 06 " }, 24000);
    setTimeout(function(){ temps.textContent=temps.value=" 07 " }, 23000);
    setTimeout(function(){ temps.textContent=temps.value=" 08 " }, 22000);
    setTimeout(function(){ temps.textContent=temps.value=" 09 " }, 21000);
    setTimeout(function(){ temps.textContent=temps.value=" 10 " }, 20000);
    setTimeout(function(){ temps.textContent=temps.value=" 11 " }, 19000);
    setTimeout(function(){ temps.textContent=temps.value=" 12 " }, 18000);
    setTimeout(function(){ temps.textContent=temps.value=" 13 " }, 17000);
     
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 16000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 15000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 14000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 13000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 12000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 11000);
    setTimeout(function(){ temps.textContent=temps.value=" 15 " }, 10000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 9000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 8000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 7000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 6000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 5000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 4000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 3000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 2000);
    setTimeout(function(){ temps.textContent=temps.value=" 21 " }, 1000);
    }
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    1-
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function tempsJoueur(i) 
    {
      let temps = document.getElementById("time");
      setTimeout(function(){ 
        temps.textContent = temps.value = " "+i.toString().padStart(2, '0')+" ";
        if( i==0 )
        {
          temps.textContent = 'C\'est fini !';
        }
      }, 1000*(30-i));
      i--;
      if(i>0)
      {
        tempsJoueur(i); // récursivité
      }
    }
    // action
    tempsJoueur(30);

    2- voir aussi : https://codepen.io/jreaux62/pen/OwgYaz

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 53
    Par défaut
    Merci énormément le code fonction bien!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction de Compte à rebours JS
    Par Magnat dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 27/04/2009, 08h40
  2. Compte à rebours
    Par Anduriel dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/12/2005, 20h12
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo