2014-05-21 1 views
0

J'essaie de modifier un script et de réinitialiser un setInterval avec un bouton onclick. Ce que je voudrais faire est clair l'intervalle et recommencer depuis le début (état 1), mais j'ai du mal à savoir comment ..Réinitialisation de setInterval avec un bouton onclick

 var face = 0; 
     var t = 100; 
     var status = 0; 
     var tInt = 100; 

     (function() { 
      var element = document.getElementById("header"); 
      element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 

      intro.play(); 

      var analysis = setInterval(function() { 
        if (status > 0) { 
        t = face ? t + tInt : 0; 

        var element = document.getElementById("header"); 

        if (status == 1) { 
         element.innerHTML = '<p class="spectrum title">MONTREZ VOTRE VISAGE</p>'; 
         element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 
         intro.stop(); 
         scan.stop(); 
         wait.play(); 
         status = 2; 
        } else if (status == 2 && t > 0 && t < 5000) { 
         element.innerHTML = '<p class="spectrum">Analyse en cours</p><p class="spectrum">PATIENTEZ...</p>'; 
         element.style.top = (window.innerHeight - element.clientHeight - 48) + "px"; 
         wait.stop(); 
         scan.play(); 
         status = 3; 
        } else if (status == 3 && t >= 5000) { 
         element.innerHTML = '<p class="perdu">DÉSOLÉ</p><p class="perdu title">Votre visage n\'est pas conforme!</p>'; 
         element.style.top = (window.innerHeight - element.clientHeight - 48) + "px"; 
         scan.stop(); 
         theme.play(); 
         status = 4; 
         clearInterval(analysis); 
        } else if (status == 3 && t == 0) { 
         status = 1; 
        } 
       } 
      }, tInt); 
+0

Vous semblez déjà effacer l'intervalle - quel est exactement le problème? –

+0

Eh bien, l'intervalle est effacé lorsque l'état est 3 et après 5000 ms. Ce que je veux c'est recommencer. Un bouton qui commence à partir de l'état 1 – KevoMercure

Répondre

1

Vous pouvez simplement ajouter un événement de clic sur un bouton, et remise à zéro les valeurs d'action et t l'intérieur de l'événement click

html

<button id="btnReset" onclick="resetValue();">Reset</button> 

ajouter cette fonction supplémentaire pour le javascript

function resetValue() { 
    action = 1; 
    t = 0; 
    // stop started items 
    intro.stop(); 
    wait.stop(); 
    scan.stop(); 
    theme.stop(); 
    // clear elements 
    var element = document.getElementById("header"); 
    if (element) { 
     element.innerHTML = ''; 
     element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 
    } 
    // restart intro 
    intro.play(); 
}; 

cela devrait remettre au début, alors que la boucle continueing intervalle

a ajouté un http://jsfiddle.net/Icepickle/GaQEp/ jsFiddle qui montre cela avec boutons marche/arrêt/reset, et quelques fonctionnalités mokked. Vous avez cependant partiellement reconstruit votre script :)

+0

Ca fonctionne un peu, mon problème est que seulement une partie de l'intervalle recommence, mais la boucle ne fonctionne pas. – KevoMercure

+0

J'ai mis à jour ma réponse pour réinitialiser les éléments et les éléments "jouants" possibles – Icepickle

+0

Merci pour tout cela, la compensation est correcte mais malheureusement, elle ne recommence pas. Je suppose que je veux faire quelque chose de trop compliqué pour moi ... Ce que je voulais faire en premier est de démarrer le scan et les messages à recommencer. C'est un jsfiddle qui montre le code: http://jsfiddle.net/KevoMercure/qkFrD/14/ Je mets ta fonction dedans aussi. – KevoMercure

Questions connexes