2014-02-25 129 views
0

嘿夥計新的網站和javaScript我想添加一個計數器多少次的背景顏色變化之前,用戶單擊按鈕和輸出多少次的顏色更改之前,他們單擊按鈕。我已經看到很多櫃檯,但沒有像我在找什麼,我的代碼如下,任何建議將是偉大的在JavaScript函數中設置計數器?

感謝所有!

P.S.我的代碼不能在IE瀏覽器,我一直在使用火狐狸

更新:有更多一點我需要做的:

•算多少顏色顯示在用戶點擊之前的「我喜歡這個顏色「 o在全局範圍內創建一個計數器(功能外) o在changeColor()函數中增加計數器 o當用戶點擊我喜歡這個顏色按鈕時,使用本地存儲來存儲計數 •讀取localStorage o文檔啓動時,訪問上述步驟中保存的計數。如果沒有任何數據 - 那麼這是第一次到網站,所以不需要顯示計數。

我已經更新了代碼的答案下面

<script type="text/javascript"> 

      var count = 0; 

      var interval; 



      function getRandom(num){ 

       return Math.floor(Math.random()*num); 



      } 



      function changeColor(){ 

       count ++; 



       var num1 = getRandom(255); 

       var num2 = getRandom(255); 

       var num3 = getRandom(255); 

       var col = "rgb("+num1+","+num2+","+num3+")"; 

       var div = document.getElementById('myDiv'); 

       div.style.background = col; 



      } 



      function stop() { 

       clearInterval(interval); 

       alert('The background color has changed ' + count + ' times before you clicked me!'); 

      } 



      interval = setInterval("changeColor()", 2000); 



</script> 





<style type="text/css"> 

.Div { 

    position:absolute; 

    width: 800px; 

    height: 100px; 

    z-index: 15; 

    top: 50%; 

    left: 15%; 

    background: red; 

} 

</style> 



</head> 



<body onLoad="setInterval()"> 





<div id="myDiv" class="Div"> 

<input type="button" onClick="stop()", value="I like this color" align="absmiddle"> 

</div> 

</body> 

</html> 
+0

的* getRandom *功能會從'0'值返回'NUM - 1' 。如果你想要全部的值,你需要傳遞256或者使用'Math.floor(Math.random()* ++ num)'。 – RobG

+0

通常**你不應該更新**你的文章**添加新的問題**。如果您的原始問題已被解答,請考慮將**標記爲已接受的答案**(並且您的代表人數也足夠多)。這樣做可能會**發佈新問題**(依此類推)。 –

+0

對不起,新的網站,所有這一切,將發佈一個新的問題 – user3349011

回答

1

這是給試試這個:

<script type="text/javascript"> 
      var count = 0; 
      var interval; 

      function getRandom(num){ 
       return Math.floor(Math.random()*num); 

      } 

      function changeColor(){ 
       count ++; 

       var num1 = getRandom(255); 
       var num2 = getRandom(255); 
       var num3 = getRandom(255); 
       var col = "rgb("+num1+","+num2+","+num3+")"; 
       var div = document.getElementById('myDiv'); 
       div.style.background = col; 

      } 

      function stop() { 
       clearInterval(interval); 
       alert('The background color has changed ' + count + ' times before you clicked me!'); 
      } 

      interval = setInterval("changeColor()", 2000); 

</script> 
<div id="myDiv"> 
<input type="button" onClick="stop()", value="I like this color" align="absmiddle"> 
</div> 
+0

真棒! – user3349011

+2

由於它將調用函數構造函數以將函數中的字符串包裝起來,因此將字符串傳遞給* setInterval *被認爲是可憐的形式。只需傳遞一個對該函數的引用:'setInterval(changeColor,2000)'。 :-) – RobG