2014-05-21 25 views
0

我在嘗試修改腳本並使用onclick按鈕重置setInterval。 我想要做的是明確的時間間隔,並從頭開始(狀態1),但我有麻煩知道如何..使用onclick按鈕重置setInterval

 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

你已經似乎清理間隔 - 究竟是什麼問題? –

+0

那麼,當狀態爲3和5000毫秒後,間隔將被清除。我想要的是重新開始。從狀態1開始的按鈕 – KevoMercure

回答

1

你可以只添加一個點擊事件按鈕和重置click事件

HTML

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

裏面的動作和T值添加這種額外功能的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(); 
}; 

這應該重置到開始,而在繼續間隔循環

加入的jsfiddle http://jsfiddle.net/Icepickle/GaQEp/示出此與開始/停止/復位按鈕,以及一些mokked功能。雖然部分重建你的腳本:)

+0

這是一種工作我的問題是隻有部分時間間隔重新開始,但循環不起作用。 – KevoMercure

+0

我更新了我的答案,以重置元素並可能「播放」項目 – Icepickle

+0

感謝所有這些,清除是好的,但可悲的是它不會重新開始。我想我想爲我做一件太複雜的事情...... 我最初想做的是啓動掃描框架和消息以重新開始。這是一個顯示代碼的jsfiddle:http://jsfiddle.net/KevoMercure/qkFrD/14/ 我也把你的功能放進去了。 – KevoMercure