2014-02-25 59 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